yii2如何根据登录的用户从数据库中调用数据并以column/field形式显示?
How to call data from database based on user who login and display in form column/field in yii2?
我想根据登录应用程序的用户显示用户名,并将其放入字段表单(用户名)中
这是我的表单代码
<?= $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]); ?>
在控制器中加载模型数据是一种很好的做法。
在你的测试控制器中
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]);
}
我想根据登录应用程序的用户显示用户名,并将其放入字段表单(用户名)中
这是我的表单代码
<?= $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]); ?>
在控制器中加载模型数据是一种很好的做法。
在你的测试控制器中
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]);
}