如何使用不同的列一次显示db数据?
这是我的YII
下拉列表:
echo CHtml::dropDownList('select_gamecat',"",
CHtml::listData(GamesType::model()->findAll(),
'id', 'descr_en', 'descr'), //<--here
array(
'empty' => Yii::t('labels', 'choosecat'),
'id' => "select_gamecat",
'class' => "inputs",
'style'=>'width:369px'
));
我希望合并'descr_en'
和'descr'
我尝试了'desrc_en.desrc'
和'desrc_en + desrc'
,但两者都无效。
有什么建议吗?谢谢
答案 0 :(得分:0)
您可以使用anonymous function:
进行尝试echo CHtml::dropDownList('select_gamecat',"",
CHtml::listData(GamesType::model()->findAll(),
'id', function($data){
return $data->descr_en.$data->descr;
}),
array('empty' => Yii::t('labels', 'choosecat'),'id' => "select_gamecat", 'class' => "inputs",'style'=>'width:369px'));
<强>释强>
Yii将检查第三个参数是否是匿名函数,如果是,它将运行它(使用call_user_func)并且第一个参数是当前模型。
答案 1 :(得分:0)
您可以重新创建数组,如下:
$models = GamesType::model()->findAll();
$data = array();
foreach ($models as $model)
$data[$model->id] = $model->descr_en . ' '. $model->descr;
echo CHtml::dropDownList($model, 'id', $data ,array('prompt' => 'Select'));
答案 2 :(得分:0)
您需要在模型类GamesType
中创建一个getter:
class GameTypes extends CActiveRecord {
# ...
public function getDesrc_enAndDesrc() {
return "$this->desrc_en $this->desrc";
}
# ...
}
然后使用上面的getter作为CHtml::listData
方法中的属性:
echo CHtml::dropDownList('select_gamecat',"",
CHtml::listData(GamesType::model()->findAll(),
'id', 'Desrc_enAndDesrc'), # <== HERE
array('empty' => Yii::t('labels', 'choosecat'),'id' => "select_gamecat", 'class' => "inputs",'style'=>'width:369px'));