問題をできるだけ明確に説明します。
私はactiveDataProviderを持っています:
$dataProvider=new CActiveDataProvider('Menu', array(
'criteria'=>array(
'with' => array('roles'),
),
));
次に、チェックボックス付きの CGridView を使用しています。
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'menu-grid',
'selectableRows' => 2,
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'title',
array(
'class' => 'SCheckboxColumn',
'header' => 'View',
'name' => 'Roles[Actions][can_view]',
'id' => 'roles_action_can_view',
'value' => '$data->id',
'checkBoxHtmlOptions' =>
array('checked' => $data->roles->can_view),
),
),
));
次に、メニュー モデルの関係で:
return array(
'roles' => array(self::HAS_MANY, 'Rolesmenus', 'menu_id'),
);
Rolesmenus モデルの関係では:
return array(
'menu' => array(self::BELONGS_TO, 'Menu', 'menu_id'),
);
そのため、$data->roles->can_view 変数にアクセスできません。すべての $data オブジェクトを var_dump すると、_attributes プライベート配列でこれらの属性を確認できますが、CGridView を介してアクセスできません。
何か案は??