Как в поля input вставить user_id

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Как в поля input вставить user_id

Сообщение alexa777 »

Привет, вопрос от новичка. Есть скрытое поле надо прописать user_id
как правильно сделать? заранее спасибо

Код: Выделить всё

<?= $form->field($model, 'user_id')-> hiddenInput()->label(false, ['style'=>'display:none']) ?>
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как в поля input вставить user_id

Сообщение zelenin »

$model->user_id = Yii::$app->getUser()->getId();
если вы об этом. но вообще, суля по всему, вы неправильным путем пошли.
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как в поля input вставить user_id

Сообщение alexa777 »

zelenin писал(а):$model->user_id = Yii::$app->getUser()->getId();
если вы об этом. но вообще, суля по всему, вы неправильным путем пошли.

Тоесть

Код: Выделить всё

<?= $form->field($model->user_id = Yii::$app->getUser()->getId();, 'user_id')-> hiddenInput()->label(false, ['style'=>'display:none']) ?>

А как будет правильнее?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как в поля input вставить user_id

Сообщение ElisDN »

А зачем его в форму передавать, если на принимающей стороне прямо можно взять прямо Yii::$app->user->id ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как в поля input вставить user_id

Сообщение zelenin »

alexa777 писал(а):
zelenin писал(а):$model->user_id = Yii::$app->getUser()->getId();
если вы об этом. но вообще, суля по всему, вы неправильным путем пошли.

Тоесть

Код: Выделить всё

<?= $form->field($model->user_id = Yii::$app->getUser()->getId();, 'user_id')-> hiddenInput()->label(false, ['style'=>'display:none']) ?>

А как будет правильнее?
viewtopic.php?f=19&t=35701
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как в поля input вставить user_id

Сообщение alexa777 »

ElisDN писал(а):А зачем его в форму передавать, если на принимающей стороне прямо можно взять прямо Yii::$app->user->id ?

Вы имеете ввиду в контролере тут?

Код: Выделить всё

public function actionCreate()
    {
        $model = new Tiser();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    } 
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Как в поля input вставить user_id

Сообщение rak »

alexa777 писал(а):
ElisDN писал(а):А зачем его в форму передавать, если на принимающей стороне прямо можно взять прямо Yii::$app->user->id ?

Вы имеете ввиду в контролере тут?

Код: Выделить всё

public function actionCreate()
    {
        $model = new Tiser();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    } 
естественно, иначе можно будет в hidden записать произвольный id и запостить что-то под чужим юзером.
hidden можно использовать, при, например, отправке сообщений другому пользователю, и подставлять в получателя его id. или в админке, где полем для выбора пользователя будет dropdown
а свой userid нужно прописывать в контроллере(причем в правилах валидации он вообще участвовать не должен)

Код: Выделить всё

$model = new Tiser();
$model->user_id = Yii::$app->user->id;
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Как в поля input вставить user_id

Сообщение alexa777 »

rak писал(а):
alexa777 писал(а):
ElisDN писал(а):А зачем его в форму передавать, если на принимающей стороне прямо можно взять прямо Yii::$app->user->id ?

Вы имеете ввиду в контролере тут?

Код: Выделить всё

public function actionCreate()
    {
        $model = new Tiser();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    }
естественно, иначе можно будет в hidden записать произвольный id и запостить что-то под чужим юзером.
hidden можно использовать, при, например, отправке сообщений другому пользователю, и подставлять в получателя его id. или в админке, где полем для выбора пользователя будет dropdown
а свой userid нужно прописывать в контроллере(причем в правилах валидации он вообще участвовать не должен)

Код: Выделить всё

$model = new Tiser();
$model->user_id = Yii::$app->user->id;
 

Супер объяснил, спасибо
Ответить