CDetailView Yii дисплей Внешний ключ Описание - PullRequest
0 голосов
/ 14 марта 2012

У меня возникла проблема с отображением описания FK на CDetailView Yii. у меня есть этот код в представлениях где отношения между kode_kab и kode_prop это master_kab имеет первичный ключ (составной => 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 голосов
/ 21 марта 2012

Согласно документации YII

CDetailView лучше всего использовать для отображения модели в обычном формате (например, каждый атрибут модели отображается в виде строки в таблице.) Модель может бытьэкземпляр CModel или ассоциативный массив.CDetailView использует свойство attribute, чтобы определить, какие атрибуты модели следует отображать и как они должны быть отформатированы.

То, что вы делаете, передает объект модели каждому атрибуту, и foreach на этом не работает.Выполните следующее, это сработает:

запустите ваш запрос в контроллере и получите результаты обратно в виде одной модели или ассоциативного массива (что вы предпочитаете).Вызовите команду render view из вашего контроллера с моделью или ассоциативным массивом в качестве передаваемого аргумента.По вашему мнению, передайте полученный аргумент в качестве источника данных для CDetailView.

Подробнее о CDetailView см. В документации по Yii.

...