CDetailView Yii显示外键描述

时间:2012-03-14 04:16:40

标签: php widget yii

我在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()提供的参数无效..

有人可以帮我解决问题吗?感谢

1 个答案:

答案 0 :(得分:0)

根据YII文件

  

CDetailView最适合用于以常规格式显示模型(例如,每个模型属性在表中显示为行。)模型可以是CModel的实例或关联数组。   CDetailView使用attributes属性来确定应显示哪些模型属性以及应如何格式化它们。

您正在做的是将模型对象传递给每个属性,而foreach失败了。 请执行以下操作;

在控制器中运行您的查询将结果作为一个模型或关联数组(无论您喜欢什么)返回。使用模型或关联数组作为传递的参数,从控制器调用render view命令。 在您的视图中,将收到的参数作为数据源传递给CDetailView。

Read more about CDetailView in the Yii documentation.