我的视图让用户看到一个人的详细信息,包括他们所在的家族。这是在DB中使用Person表,Family表和FamilyMembership链接表完成的。Yii将相关数据导入GridView
中的CActiveRecord模型人的关系是这样的:
'families' => array(self::MANY_MANY, 'Family', 'familymembership(Person, Family)'),
在我一个人控制,我想一个变量传递到具有在某种程度上的相关数据认为TbGridView(CGridView但Bootstrap)会接受(一个数据提供者)。控制器调用模型人的getFamilies()函数:
public function getFamilies() {
// returns an array of Family objects related to this Person model
$familiesArray = $this->getRelated('families');
// puts this array into a CArrayDataProvider
$families = new CArrayDataProvider($familiesArray);
return $families;
}
返回值可以追溯到控制器,然后穿过的RenderPartial()调用移交。视图有一个TbGridView控件初始化是这样的:
$this->widget('bootstrap.widgets.TbGridView',
array(
//the CArrayDataProvider from the model function
'dataProvider' => $families,
'columns' => array(
array(
'name' => 'Family Name',
// Example field from Family model
'value' => '$data->familyName'
)
)
));
然而,在这样做,我收到以下错误: “属性‘Family.id’没有定义。 (D:\ wamp \ www \ yii \ framework \ base \ CComponent.php:130)'
家族模型没有id属性,我不明白为什么widget正在寻找这样的东西。
这里怎么回事?
谢谢。
感谢您的帮助! – 2014-09-04 22:52:19