在CDetailView Yii上显示FK的描述时遇到问题。我在Views上有这个代码其中kode_kab和kode_prop之间的关系是master_kab具有主键(composite=>kode_prop和kode_kab)
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'kode_prop'=>array(
'name'=>'Provinsi',
'value'=>master_prop::model()->FindByPk($model->kode_prop)->propinsi,
),
'kode_kab'=>array(
'name'=>'Kabupaten/Kota',
'value'=>master_kab::model()->FindByPk($model->kode_kab)->kabupaten,
),
当我运行它时,错误消息:为foreach()提供的参数无效。。
有人能帮我找到解决方案吗?感谢
根据YII文档
CDetailView最适合用于以常规格式显示模型(例如,每个模型属性都显示为表中的一行。)模型可以是CModel的实例,也可以是关联数组。CDetailView使用attributes属性来确定应显示哪些模型属性以及如何格式化这些属性。
您正在做的是向每个属性传递一个模型对象,而foreach在这方面失败了。做到以下几点,它就会起作用;
在控制器中运行查询,将结果作为一个模型或关联数组(无论您喜欢什么)返回。从控制器中调用渲染视图命令,并将模型或关联数组作为传递的参数。在视图中,将接收到的参数作为数据源传递给CDetailView。
阅读Yii文档中有关CDetailView的更多信息。