我有一个涉及多对多关系的测试设置。
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中获取相关数据。
谢谢
答案 0 :(得分:3)
您必须在重定向中将过滤器输入的名称定义为键,例如:
$this->redirect(['parents/index','StudentSearch[id]'=>2]);