如何在 CDetailView Yii
中显示来自外键的数据,如果列名不同表1
x1 x2
1 sample text 1
2 sample text 2
3 sample text 3
表2
y1 y2 y3 (foreign key x1)
1 text 1 1
2 text 2 1
3 text 3 2
我想显示以下结果
y1 y2 y3
1 text 1 sample text 1
2 text 2 sample text 1
3 text 3 sample text 2
这是模型类中的关系代码
public function relations(){
return array(
'Table2' => array(self::BELONGS_TO, 'Table1', array('x1'=>'y3'))
);
}
这是我的CDetailView代码
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
array(
'name'=>'Table2.y3',
'value'=>$model->Table2->x2,
),
'y1',
'y2'
),
)); ?>
我收到以下错误
Property "Table2.x1" is not defined.
答案 0 :(得分:0)
第一个问题:关系定义不正确(据我所知,从提供的信息中可以理解)
Table1
public function relations(){
return array(
'Table2' => array(self::HAS_MANY, 'Table2', 'y3')
);
}
因为table1模型的一个对象将有许多table2的对象
Table1
public function relations(){
return array(
'Table1' => array(self::BELONGS_TO, 'Table1', 'y3')
);
}
由于table2模型的一个对象属于某个表的对象..
现在正确定义关系后,您可以使用'value'=>$data->Table2->x2,
打印关系中的值..