假设我有一个模型User
,它与自身具有多对多关系,名为friends
. 所以$user->friends
(或$model->friends
在视图中)给了我一个对象数组User
。我想将朋友显示为gridview。但是CGridView
数据作为dataProvider
对象。谷歌搜索它找到了将模型对象数组转换为dataProvider
对象的方法,如下所示。
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'gridUser',
'dataProvider' => new CArrayDataProvider($model->friends, array()),
));
现在使用这个我得到一个错误
未定义属性“User.id”。
更新
public function relations()
{
return array(
'friends' => array(self::MANY_MANY, 'User', 'friendship(user_id, friend_id)'),
);
}