Php 如何在Yii中的CDetailView中显示ListData()

Php 如何在Yii中的CDetailView中显示ListData(),php,yii,Php,Yii,假设我有一个CDetailView代码,如下所示 $this->widget('zii.widgets.CDetailView', array( 'data'=>$model, 'attributes'=>array( 'title', 'owner.name', 'description:html', array(

假设我有一个CDetailView代码,如下所示

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'title',             
        'owner.name',       
        'description:html',  
        array(               
            'label'=>'City',
            'type'=>'raw',
            'value'=>'', // ??? How to insert here ListData function that it will display list of different cities
        ),
    ),
));
现在在上面的代码中,我想插入列表数据数组中的城市列表

$list = CHtml::listData($model->city, "city_id", "cities");
如果我在
print\r()
中保留
$list
。如下图所示

Array ( [1] => London [2] => Paris [3] => New York ) 
任何帮助都将不胜感激


谢谢。

应具有该列的值。因此,您必须使用
过滤器
,如下所示

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'title',             
        'owner.name',       
        'description:html',  
        array(               
            'label'=>'City',
            'type'=>'raw',
            'value'=>$data->city_id,
            'filter'=>CHtml::listData($model->city, "city_id", "cities")

        ),
    ),
));

Value
应该为列指定值。因此,您必须使用
过滤器
,如下所示

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'title',             
        'owner.name',       
        'description:html',  
        array(               
            'label'=>'City',
            'type'=>'raw',
            'value'=>$data->city_id,
            'filter'=>CHtml::listData($model->city, "city_id", "cities")

        ),
    ),
));
数组(
“标签”=>“城市”,
'type'=>'raw',
'值'=>内爆('
',$list), '类型'=>'原始', ),
数组(
“标签”=>“城市”,
'type'=>'raw',
'值'=>内爆('
',$list), '类型'=>'原始', ),
如果它不起作用,那么您可以试试这个

'label'=>'City',
            'type'=>'raw',
            'value'=>array($model,'createListFunction'), 
然后在模型类中创建一个名为
createListFunction


如果它不起作用,那么你可以试试这个

'label'=>'City',
            'type'=>'raw',
            'value'=>array($model,'createListFunction'), 
然后在模型类中创建一个名为
createListFunction


当我使用'value'=>$data->city\u id时,它给出了一个未定义的错误,即$data,其次,如果我使用'value'=>$model->city\u id,它将只打印id号,但我不需要id号,我需要该编号对应的值。因此,要打印城市名称,您必须在模型本身中获取城市名称。为此,您必须在模型中定义一个变量来存储city\u name,并在别名为
city\u name
的查询中获取city name。然后,当我使用'value'=>$data->city\u id时,你可以直接调用城市名称作为
$data->city\u name
,它给出了一个未定义的错误,即$data,其次,如果我使用'value'=>$model->city\u id,它将只打印id号,但我不需要id号,我需要该号码对应的值。因此,要打印城市名称,您必须在模型本身中获取城市名称。为此,您必须在模型中定义一个变量来存储city\u name,并在别名为
city\u name
的查询中获取city name。然后您可以直接将城市名称命名为
$data->city\u name