基于yii2中的用户登录显示gridview

基于yii2中的用户登录显示gridview,yii2,yii2-advanced-app,yii2-user,Yii2,Yii2 Advanced App,Yii2 User,如何根据索引中当前用户登录显示gridview?例如,学生登录并填写表格,然后注销。当其他学生登录时,学生A填写的数据将不显示 在gridview <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'education_id'

如何根据索引中当前用户登录显示gridview?例如,学生登录并填写表格,然后注销。当其他学生登录时,学生A填写的数据将不显示

在gridview

        <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'education_id',
        'year',
        'fieldstudy',
        'institute',
        'grade',

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>      
At模型

    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\u id,则可以使用
Yii::$app->user->identity->id

  $dataProvider = new ActiveDataProvider([
    'query' => Education::find()->
                  where(['user_id' =>  Yii::$app->user->identity->id ]),
]);

如果需要检索与用户id相关的教育信息,并假设在教育模型中此关系基于字段user\u id,则可以使用
Yii::$app->user->identity->id

  $dataProvider = new ActiveDataProvider([
    'query' => Education::find()->
                  where(['user_id' =>  Yii::$app->user->identity->id ]),
]);

…它仍然失败。我犯了这个错误。“query”属性必须是实现QueryInterface的类的实例,例如yii\db\query或其子类。在教育模式中是否需要输入用户id?我仍然感到困惑@我必须更新答案。。最终更新你的帖子并添加教育模式代码,以及与你相关的控制者/行动代码。我已经编辑了我的帖子并附上了教育模式部分。如何在模型部分进行修复@这个模型似乎是正确的。。(您有和user_id字段,可用于根据实际记录的用户筛选距离)。。然后尝试var_dump(Yii::$app->user->identity->id),如果教育->user_id中的值与Yii::$app->user->identity->id的值匹配,那么数据提供者应该工作。。请尝试让我知道这段代码对我有用,但在我在user_id表中添加value id之后。”查询'=>Education::find()->其中(['user\u id'=>Yii::$app->user->identity->id])。我尝试在用户添加教育后将值user_id自动插入到表中。顺便说一句,谢谢@scaisEdge帮助我…它仍然失败。我犯了这个错误。“query”属性必须是实现QueryInterface的类的实例,例如yii\db\query或其子类。在教育模式中是否需要输入用户id?我仍然感到困惑@我必须更新答案。。最终更新你的帖子并添加教育模式代码,以及与你相关的控制者/行动代码。我已经编辑了我的帖子并附上了教育模式部分。如何在模型部分进行修复@这个模型似乎是正确的。。(您有和user_id字段,可用于根据实际记录的用户筛选距离)。。然后尝试var_dump(Yii::$app->user->identity->id),如果教育->user_id中的值与Yii::$app->user->identity->id的值匹配,那么数据提供者应该工作。。请尝试让我知道这段代码对我有用,但在我在user_id表中添加value id之后。”查询'=>Education::find()->其中(['user\u id'=>Yii::$app->user->identity->id])。我尝试在用户添加教育后将值user_id自动插入到表中。顺便说一句,谢谢@scaisEdge帮助我