我在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()提供的参数无效..
有人可以帮我解决问题吗?感谢
答案 0 :(得分:0)
根据YII文件
CDetailView最适合用于以常规格式显示模型(例如,每个模型属性在表中显示为行。)模型可以是CModel的实例或关联数组。 CDetailView使用attributes属性来确定应显示哪些模型属性以及应如何格式化它们。
您正在做的是将模型对象传递给每个属性,而foreach失败了。 请执行以下操作;
在控制器中运行您的查询将结果作为一个模型或关联数组(无论您喜欢什么)返回。使用模型或关联数组作为传递的参数,从控制器调用render view命令。 在您的视图中,将收到的参数作为数据源传递给CDetailView。