Я новичок в 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,
),
),
)); ?>
он отображает код страны, есть ли способ, чтобы я мог передать массив страны, и из этого массива я могу найти значение из ключа массива
Заранее спасибо за помощь
Вы бы сделали это так:
$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],
),
),));
Допустим, у вас есть 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',
...
),