具有两个表的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()的内容