2014-01-10 33 views
0

我有兩個表Yii的DataProvider的兩個表

User: 
id | name | gender(boolean) 

Gender: 
gender_id (boolean) | gender_name (text) 

我想通過的DataProvider

UserController: 
public function actionIndex() 
{   
    $crt = new CDbCriteria(); 
    $crt->alias = 'so'; 
    $crt->select = 'so.id, so.name, so.gender, fl.Gender_name'; 
    $crt->join = " left join " . Gender::model()->tableName() . " as fl on fl.Gender_id = so.Gender"; 

    $dataProvider=new CActiveDataProvider('User', array('criteria' => $crt)); 
    $this->render('index',array(dataProvider'=>$dataProvider,)); 
} 

顯示性別的文本表示其結果,我無法通過數據提供程序表gender

回答

1

您可以在模型中創建relation。這樣你就不必使用標準,並且可以通過$model->gender->gender_name來訪問該值,例如

+0

這是正確的答案 –

+0

我不認爲它應該在db表中。模型上的自定義方法就足夠了。像getGenderText() – HarryFink