0

これらのフィールドを持つモデルがあります:

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 のレコードがないルート特許が原因のようです。

どうすればこの問題に対処できますか?

よろしくお願いします。

4

1 に答える 1