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

时间:2014-09-14 15:55:23

标签: php mysql yii2

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

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中获取相关数据。

谢谢

1 个答案:

答案 0 :(得分:3)

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

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