我使用一些$query->andFilterWhere(...)
来创建我的查询。
并且可以通过以下方式查看最终查询echo $query->createCommand()->rawSql;
当我复制最终查询并将其传递到 phpmyadmin 时,获取了 2 条记录,但在 ActiveDataProvider 中找不到结果。
我错过的重点在哪里?!
============================================
这是我的代码:
$query = Camera::find();
$post = Yii::$app->request->post();
$post2 = array_filter((array)$post);
if( count($post2) >0 ){
foreach($post2 as $k=>$v){
$query->andFilterWhere([ 'Like' , $k , $v ]);
}
}
if($post['State'] > 0){
$branches = Branch::find()->joinWith('city')->where('state_id='.((int)$post['State']))->all();
foreach( $branches as &$v){
$v = $v->brch_id;
}
$query->andFilterWhere([ 'IN' , 'brch_id' , $branches ]);
}
echo $query->createCommand()->rawSql;
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);