我有一个涉及多对多关系的测试设置。
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]);