我有一个查询,它给了我一对context_id和class_id。我希望其中一个查询满足其中一个。所以我需要做(co1和cl1)或(co2和cl2)或......
这个给了我一系列的&#39>:
foreach($tscarr as $tsc)
{
$grid->dq->where('context_id',$tsc['context_id'])->where('class_id',$tsc['class_id']);
}
我从这个页面知道:http://agiletoolkit.org/doc/dsql/where我应该能够做到的。但是在尝试使用或以这种方式时出现错误:
$grid->dq->where($grid->dq->or()->where($grid->dq->where('context_id',$tsc['context_id'])->where('class_id',$tsc['class_id'])));
希望你有一个好主意如何解决这个问题......
答案 0 :(得分:1)
您可以使用$dsql->orExpr()
方法。
Stackoverflow中有多个示例,例如https://stackoverflow.com/a/17958175/1466341,在ATK4 Google网上论坛https://groups.google.com/forum/#!forum/agile-toolkit-devel只搜索或者发送。
我想在你的情况下,这样的事情应该有效(未经测试):
$q = $grid->dq;
$or = $q->orExpr();
foreach($tscarr as $tsc)
{
$or->where(
$q->andExpr()
->where('context_id', $tsc['context_id'])
->where('class_id', $tsc['class_id'])
);
}
$q->where($or);