如何在yii列表视图中显示数组中的值

时间:2014-12-18 07:22:12

标签: php listview 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,
        ),

    ),
)); ?>

它正在显示国家/地区代码,有没有办法让我可以传递国家/地区数组,从这个数组我可以找到数组键中的值

提前感谢您的帮助

2 个答案:

答案 0 :(得分: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],
    ),

),));

答案 1 :(得分: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',
    ...
),