@Sanchik97

Нужна помощь с yii2?

Здравствуйте. в yii2 новичок. Стоит задача сделать так, чтобы при добавлении статьи в поле user_id добавлялся username из таблицы user. Что необходимо написать в actionCreate?

p.s.
Вот действие в контролере, которое не удосужился сразу вписать в вопрос)))
public function actionCreate()
    {
        $model = new Article();
        $model->created=time();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    }
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
Lumore
@Lumore
Front-end developer
public function actionCreate()
    {
        $model = new Article();

        if ($model->load(Yii::$app->request->post())) {
           $model->created=time();
           $model->user_id = Yii::$app->user->identity->id;
           if($model->save()) {
               return $this->redirect(['view', 'id' => $model->id]);
           }
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    }

А в статье вытягиваете у юзера юзернейм (если у вас, конечно, релейшены есть):
$user->username
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Если Вы добавляете username для связи статей с автором, то это не правильно. Надо ориентироваться на id пользователя, вдобавок настроить связь между таблицами и уже по id получать имя пользователя.
А так можно записать через этот код.
$model->username = Yii::$app->user->inedtity->username; // это если у Вас username, если нет - исправьте на своё значение.

И ещё.
user_id добавлялся username

Как это понять? Вы хотите записать в integer string?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы