我想显示基于登录到应用程序的用户的用户名并将其放在字段表单(用户名)中
这是我的表单的代码
<?= $form->field($model, 'username')->textInput(['maxlength' => true])?>
这是用于根据登录用户调用用户名的代码
<?=Yii::$app->user->identity->username ?>
但我不知道如何将用户名放在textinput内
答案 0 :(得分:1)
您应该在传递给ActiveFrom小部件的模型对象中设置必要的值:
<?= $model->username = Yii::$app->user->identity->username; ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]); ?>
答案 1 :(得分:0)
将模型数据加载到控制器中是一种好习惯。
在您的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]);
}