У меня есть тестовая установка, которая включает в себя отношение многих ко многим.
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
и в контроллере я могу найти такую же запись, как это, когда я использую данные студента с идентификатором 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]);
Других решений пока нет …