yii2中根据用户登录显示gridview
Display gridview based on user login in yii2
如何在索引处显示基于当前用户登录的gridview?例如,学生 A 登录并填写表格并注销。其他同学登录时,不会显示同学A填写的数据。
在 gridview
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'education_id',
'year',
'fieldstudy',
'institute',
'grade',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
在控制器处
public function actionIndex()
{
$dataProvider = new ActiveDataProvider([
'query' => Education::find()->
where(['user_id' => Yii::$app->user->identity->id ]),
]);
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
}
模特
class Education extends ActiveRecord implements IdentityInterface
{
public static function tableName()
{
return 'education';
}
public function rules()
{
return [
[['year', 'fieldstudy', 'institute', 'grade'], 'required'],
[['user_id'], 'integer'],
[['year', 'fieldstudy', 'institute', 'grade'], 'string', 'max' => 255],
];
}
public function attributeLabels()
{
return [
'education_id' => 'Education ID',
'student_id' => 'Student ID',
'year' => 'Year',
'fieldstudy' => 'Fieldstudy',
'institute' => 'Institute',
'grade' => 'Grade',
];
}
public function getId($id)
{
return static::find(['user_id' => $id]);
}
如果您需要检索与用户 ID 相关的教育信息,并假设在教育模型中此关系基于字段 user_id,您可以使用 Yii::$app->user->identity->id
$dataProvider = new ActiveDataProvider([
'query' => Education::find()->
where(['user_id' => Yii::$app->user->identity->id ]),
]);
如何在索引处显示基于当前用户登录的gridview?例如,学生 A 登录并填写表格并注销。其他同学登录时,不会显示同学A填写的数据。
在 gridview
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'education_id',
'year',
'fieldstudy',
'institute',
'grade',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
在控制器处
public function actionIndex()
{
$dataProvider = new ActiveDataProvider([
'query' => Education::find()->
where(['user_id' => Yii::$app->user->identity->id ]),
]);
]);
return $this->render('index', [
'dataProvider' => $dataProvider,
]);
}
}
模特
class Education extends ActiveRecord implements IdentityInterface
{
public static function tableName()
{
return 'education';
}
public function rules()
{
return [
[['year', 'fieldstudy', 'institute', 'grade'], 'required'],
[['user_id'], 'integer'],
[['year', 'fieldstudy', 'institute', 'grade'], 'string', 'max' => 255],
];
}
public function attributeLabels()
{
return [
'education_id' => 'Education ID',
'student_id' => 'Student ID',
'year' => 'Year',
'fieldstudy' => 'Fieldstudy',
'institute' => 'Institute',
'grade' => 'Grade',
];
}
public function getId($id)
{
return static::find(['user_id' => $id]);
}
如果您需要检索与用户 ID 相关的教育信息,并假设在教育模型中此关系基于字段 user_id,您可以使用 Yii::$app->user->identity->id
$dataProvider = new ActiveDataProvider([
'query' => Education::find()->
where(['user_id' => Yii::$app->user->identity->id ]),
]);