Yii2-网格视图中的过滤数据


Yii2 - Filtered Data In Grid View

我有一个涉及多对多关系的测试设置。

Students Model
id
name
Parents Model
id
name
Students_Parents Model
student_id
parent_id

我想做的是将学生更新表单重定向到家长网格视图。我只想在家长网格视图中显示相关的学生家长记录。

例如,显示相关记录的mysql查询如下:

SELECT s.id, s.name, p.id, p.name
FROM `students` s, parents p, student_parent sp
WHERE s.id = sp.student_id
AND p.id = sp.parent_id
AND s.id =102

在控制器中,当我使用id为102 的学生的数据时,我可以找到相同的记录

$model2 = Students_Parents::find()
            ->where(['student_id' => $model->id])
            ->all();

我在控制器中的重定向代码是:

if(isset($_POST['parents'])){
                   return $this->redirect(['parents/index','id'=>$model2]);
            }

此处表单重定向正确,但未应用任何筛选器。如何将查询合并到重定向中,以便仅在GridView中获取相关数据。

感谢

您必须在重定向中定义过滤器输入的名称作为关键字,如:

    $this->redirect(['parents/index','StudentSearch[id]'=>2]);