2014-09-14 1 views
0

많은 관계가 포함 된 테스트 설정이 있습니다.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 

을 내가 102

의 ID와 학생의 데이터를 사용할 때 컨트롤러에이 같은 동일한 레코드를 찾을 수 내가 할 노력하고 있어요 컨트롤러 내 리디렉션 코드는

입니다

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

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

양식이 올바르게 리디렉션되고 있지만 필터가 적용되지 않습니다. GridView에서만 관련 데이터를 얻을 수 있도록 리디렉션에 쿼리를 통합하는 방법은 무엇입니까?

감사

+0

, 'id'=> $ model2]);''$ model2'의 값은 무엇입니까? 정수입니까? –

+0

@KunalDethe - 예, ID의 값입니다. – Joshi

답변

3

당신은 같은 키로 리디렉션에서 필터 입력의 이름을 정의해야한다 :`$ this->이 ([ '부모/인덱스를'재 반환에

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