Как отобразить значение из массива в виде списка yii

Я новичок в yii и отображаю информацию о пользователе в виде списка yii, проблема в том, что у меня есть список стран, и на этой основе у меня есть код страны для отображения страны, но я хочу показать значение страны, а не код страны, у меня есть такой массив

array('IN'=>'India','US'=>'United State'............................,'AUS'=>'Australia');

я использую этот код в представлении для отображения информации

<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'site_id',
'name',
'desc',
'status',
's_icon',
array(
'name' => 'sys_country',
'value' =>$sysinfo->sys_country,
),

),
)); ?>

он отображает код страны, есть ли способ, чтобы я мог передать массив страны, и из этого массива я могу найти значение из ключа массива

Заранее спасибо за помощь

0

Решение

Вы бы сделали это так:

$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'site_id',
'name',
'desc',
'status',
's_icon',
array(
'name' => 'sys_country',
'value' =>$countryArray[$model->sys_country],
),

),));
0

Другие решения

Допустим, у вас есть tbl_country Таблица:

country_code | country_name
------------ | ------------
IN           | India
US           | United States
...          | ...

и у тебя есть Country модель для этой таблицы.

Затем вы можете определить country отношение к Userмодель:

public function relations () {
return array(
'country' => array( self::BELONGS_TO, 'Country', 'country_code' ),
);
}

Сейчас в CDetailView Вы можете просто использовать country.country_name:

'attributes'=>array(
...
'name',
'status',
'country.country_name',
...
),
0

По вопросам рекламы [email protected]