假设我有模型User
,它与自己有多对多的关系,命名为friends
。 所以$user->friends
(或$model->friends
在视图中)给我一个User
对象的数组。我想将这些朋友显示为gridview。但CGridView
数据为dataProvider
对象。使用Google搜索找到了将模型对象数组转换为dataProvider
对象的方式,如下所示。如何将模型数据对象数组转换为数据提供者
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'gridUser',
'dataProvider' => new CArrayDataProvider($model->friends, array()),
));
现在用这个,我得到一个错误是没有定义
属性 “User.id”。
UPDATE
public function relations()
{
return array(
'friends' => array(self::MANY_MANY, 'User', 'friendship(user_id, friend_id)'),
);
}
添加如何定义关系以及两个模型如何相关(PK和FK)对于获得答案至关重要! –