Yii DataProvider有两个表

时间:2014-01-10 07:25:28

标签: 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 = '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 个答案:

答案 0 :(得分:1)

您可以在模型中创建relation。这样您就不必使用条件,并且可以通过$model->gender->gender_name访问该值,例如