我现在还在博客教程上学习YII。
我尝试使用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.我的关系和范围已定义
答案 0 :(得分:0)
您应该在模型中定义relations,这样您就可以轻松获得这样的数据。 如果实际情况不够,则必须使用CDbCriteria构建查询,或者在选择模型时添加条件。 但无论如何,在进入DataProvider之前,这样做会更好。
或者在最坏的情况下,当您不知道该怎么做时,您可以使用命令构建器: