これらのフィールドを持つモデルがあります:
id , name , parent_id
このテーブルに階層構造を格納します。
somw の例のレコードは次のとおりです。
1 - fruits - 0
2 - foods - 0
3 - colors - 0
4 - apple - 1
5 - red - 3
6 - meat- 2
管理(管理)ページのグリッドビューで、IDの代わりに親の名前を表示したい。だから私はモデル(もの)でこの関係を定義します。
public function relations()
{
return array(
'parent' => array(self::BELONGS_TO, 'stuff', 'parent_id'),
);
}
とビューで:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'mygrid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'name',
array(
'name' => 'parent name',
'value' => '$data->parent->name'
),
array(
'class'=>'CButtonColumn',
),
),
));
?>
しかし、管理ページで「オブジェクト以外のプロパティを取得しようとしています」というエラーが表示されます。これは、parent_id が '0' で id=0 のレコードがないルート特許が原因のようです。
どうすればこの問題に対処できますか?
よろしくお願いします。