я хочу, чтобы отобразить имя пользователя на основе пользователя, который входит в приложение и поместил его в форму поля (имя пользователя)
это код для моей формы
<?= $form->field($model, 'username')->textInput(['maxlength' => true])?>
это код для вызова имени пользователя в зависимости от имени пользователя
<?=Yii::$app->user->identity->username ?>
но я не знаю, как поместить имя пользователя внутри ввода текста
Вы должны установить необходимое значение в объекте модели, который передается виджету ActiveFrom:
<?= $model->username = Yii::$app->user->identity->username; ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]); ?>
Рекомендуется загружать данные модели в контроллер.
В вашем TestController
public function actionTest(){
$model = new User();
$model->username = Yii::$app->getUser()->getIdentity()->username;
if($model->load(Yii::$app->getRequest()->post()){
$model->save();
// and ...
}
return $this->render('view', ['model'=>$model]);
}
В вашем представлении файла
<?= $form->field($model, 'username')->textInput(['maxlength' => true])?>
В этом случае, если вы хотите запретить пользователю изменять значение имени пользователя, измените код контроллера на что-то вроде этого:
public function actionTest(){
$model = new User();
$model->username = Yii::$app->getUser()->getIdentity()->username;
if($model->load(Yii::$app->getRequest()->post()){
// Overwrite user input.
$model->username = Yii::$app->getUser()->getIdentity()->username;
$model->save();
// and ...
}
return $this->render('view', ['model'=>$model]);
}