CDetailView Yii显示外键描述


CDetailView Yii display Foreign Key Description

在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的更多信息。