1

テーブルAとテーブルBの2つのテーブルがあります。

テーブルBのmember_idと呼ばれるfkとして、テーブルAのpkがあります。

テーブルBのグリッドビュー表示中に、テーブルBの「member_id」を使用してテーブルAの「メンバー名」を表示したいと思います。

$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

1 に答える 1

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}',
    ),
),
)); 
于 2012-07-09T07:44:30.273 に答える