2014-01-10 2 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,)); 
} 

В результате, я не могу пройти через DataProvider таблицу gender

ответ

1

В моделях вы можете установить relation. Таким образом, вам не нужно использовать критерии, и к ним можно обратиться через $model->gender->gender_name, например

+0

Правильный ответ –

+0

Я не думаю, что это должно быть в таблице db. Обычного метода на модели было бы достаточно. Что-то вроде getGenderText() – HarryFink