我现在还在学习YII on blog教程。
我尝试使用CAtiveRecord连接许多表:
$q= Questions::model()->searchText($text);
$dataProvider=new CActiveDataProvider($q,array(
'criteria'=>array(
'with'=>array(
'Ans'=>array(
'scopes'=>array(
'searchAns'=>$text,
),
)
)
),
'together' => true,
),
'pagination' => array('pageSize' => 10,),
));但我的结果是:
SELECT * FROM `Q` `t`
LEFT OUTER JOIN `A` `ans` ON (`ans`.`q_id`=`t`.`id`) AND (ans.text LIKE :ycp2)
WHERE (t.question LIKE :ycp0)
LIMIT 10我需要我的MySQL查询如下:
Select * FROM
Table as A
left Join Table as B on A.id=B.id_parent
where A.status = 1 OR B.status=2稍后编辑
1.定义了关系和作用域
发布于 2014-04-03 17:13:22
你应该在你的模型中定义relations,这样你就可以很容易地获得这样的数据。如果关系还不够,你必须使用CDbCriteria构建你的查询,或者在你的模型中选择时简单地添加条件。但在任何情况下,在进入DataProvider之前这样做都会更好。
或者在最坏的情况下,当你不知道该怎么做时,你可以使用命令生成器:
https://stackoverflow.com/questions/22831676
复制相似问题