2013-04-02 7 views
1
에서 하나 CGridView을 표시하는 방법

내가 한 CGridView에 두 개의 데이터베이스 테이블 소스를 표시하려고 .. 2 테이블 reg.students 및 login.user이었다 .. 학생들 모델 관계이다는 두 개의 데이터베이스

public function relations() 
{ 

    Yii::app()->getModule('user'); 
    return array(
     'royaltyOutstandings' => array(self::HAS_MANY, 'RoyaltyOutstanding', 'studentID'), 
     'srkMedicalInfos' => array(self::HAS_MANY, 'SrkMedicalInfo', 'studentID'), 
     'parents' => array(self::HAS_ONE, 'SrkParents', 'studentID'), 
     'srkStudentWorksheets' => array(self::HAS_MANY, 'SrkStudentWorksheet', 'studentID'), 
     'user' => array(self::BELONGS_TO, 'User', 'centre_id'), 
    ); 
} 
사용자 모듈

, cgridview 열 배열

public function tableName() 
{ return 'login.user'; } 

,

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
      array(
     'header' => 'No.', 
     'value' => '$row+1', 
    ), 
    array('name' => 'user.centre_id', 
    'value'=>'$data->user->centre_id', 
    ), 
    '... // & so on 

컨트롤러 조치는 내가 제대로 이해 당신이 당신의 gridview에서 하나 개 이상의 관계를 표시 할 경우

public function actionAdmin() 
{ 
    $this->layout = 'column3'; 
    $form = new Reports ; 
    $model=new Students('search'); 
    $model->unsetAttributes(); // clear any default values 
    if(isset($_GET['Students'])) 
     $model->attributes=$_GET['Students']; 

    $this->render('admin',array(
     'model'=>$model, 
     'form'=>$form, 
    )); 
} 
+0

http://www.yiiframework.com/doc/api/1.1/CArrayDataProvider - 원하는 데이터 소스에서 원하는 모든 데이터를 제공 할 수 있습니다. –

+0

@RuslanPolutsygan, urn 정보는 thnx입니다.이 링크를 다시 확인하십시오. –

+0

두 데이터베이스간에 연결을위한 샘플 코드가 있습니다. –

답변

1

이다. http://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/ 이 자습서에서는 gridview에 관계를 표시하는 방법을 보여줄뿐만 아니라 데이터 정렬 및 필터링 방법을 보여줍니다. 행운을 빕니다!

+0

thnx 귀하의 회신에 대한 많은, 나는 내 지식까지 이들을 시도 .. 실제로 내 gridview database1.table1 및 database2.table2 table2 모듈 -> 모델 아래에있는 관련된 데이터를 표시 할 때. null을 제공하는 table2 값을 가져 오려고 할 때. 나는 database2.table2에서 데이터를 가져 오는 방법을 모르겠다. –

+0

최대한 많은 코드를 붙여 넣으십시오. –

+0

좋아, 다른 데이터베이스에서 테이블 2의 데이터를 가져 오시겠습니까? 그렇다면 Yii가 내 지식에 본질적으로 그렇게하지 않기 때문에이 두 번째 데이터베이스에 연결하고 있습니까? –