2012-07-09 85 views
1

我有兩個表表A和表B中如何顯示在顯示gridview的YII兩個表的結果

我有表A的PK,爲Fk在表B.稱爲member_id

而表B的girdview顯示,我想表明在表A中的「會員名」,表B中使用「member_id」

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
    'id', 
    'member_id', 
    'Location', 
    ... 
    array(
     'class'=>'CButtonColumn', 
     'template'=>'{view}', 
    ), 
), 
)); 

回答

4

你需要安裝一個關係到該表,你可以使用參考該字段的關係如下:

$data->member->name; 

在您的交易模型,你將使類似:

public function relations() { 
     // NOTE: you may need to adjust the relation name and the related 
     // class name for the relations automatically generated below. 
     return array(
      'member' => array(self::BELONGS_TO, 'Member', 'member_id'),// foreign key 
     ); 
    } 

和網格你會做這樣的:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'transaction-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
    'id', 
     array(
      'header' => 'Member', 
      'name' => 'member_id', 
      'value' => '$data->member->name' 
     ), 

    'Location', 
    ... 
    array(
     'class'=>'CButtonColumn', 
     'template'=>'{view}', 
    ), 
), 
)); 
+0

嗨,我已經完成以上步驟,但是,我得到錯誤作爲'爲foreach()'提供的無效參數。文件和行號是'/var/www/Yii/yii-1.1.13.e9e4a0/framework/db/ar/CActiveFinder.php(784)' – ungalnanban 2013-10-08 09:54:42