具有两个表的Yii数据提供程序

具有两个表的Yii数据提供程序,yii,criteria,dataprovider,Yii,Criteria,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 =

我有两张桌子

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

您可以在模型中创建一个。这样,您就不必使用标准,并且可以通过
$model->gender->gender\u name
访问值,例如

我认为它不应该在db表中。模型上的自定义方法就足够了。类似于getGenderText()的内容