2014-10-27 44 views
0

如何一次顯示不同列的db數據?Yii - 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'但都不起作用。

有何建議?由於

enter image description here

回答

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),第一個參數是當前模型。

+0

你可以嘗試混合我以前的代碼嗎?因爲當我混合你的代碼...很多錯誤 – TheSmile 2014-10-27 06:46:56

+0

像這樣,還是你需要更多?你能告訴我什麼不能工作嗎? – Dinistro 2014-10-27 06:49:12

+0

相同...即時通訊使用Dreamweaver ...我粘貼你的代碼,並給我3紅線 – TheSmile 2014-10-27 06:51:19

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')); 
+0

我認爲這不是「Yii-like」 – Dinistro 2014-10-27 06:28:54

0

只要你需要創建模型類吸氣GamesType爲:

class GameTypes extends CActiveRecord { 
    # ... 
    public function getDesrc_enAndDesrc() { 
     return "$this->desrc_en $this->desrc"; 
    } 
    # ... 
} 

然後在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'));