I am new to yii and displaying the user information in the yii list view , problem is i have a country list and on that base I have a country code to display the country but i want to show the country value not country code , i have an array like this
array('IN'=>'India','US'=>'United State'............................,'AUS'=>'Australia');
i am using this code in the view to display information
<?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,
),
),
)); ?>
it is displaying the country code, is there any way so that i can pass the country array and from this array i can found the value from the array key
thanks in advance for the help
You'd do it this way:
$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],
),
),));
Lets say you have tbl_country
table:
country_code | country_name
------------ | ------------
IN | India
US | United States
... | ...
and you have Country
model for that table.
Then you can define a country
relation for User
model:
public function relations () {
return array(
'country' => array( self::BELONGS_TO, 'Country', 'country_code' ),
);
}
Now in CDetailView
you can simply use country.country_name
:
'attributes'=>array(
...
'name',
'status',
'country.country_name',
...
),