我搜索并发现了类似的帖子,但没有一个与我的情况相同。似乎 Laravel 文档没有显示像我这样的情况,尽管我的情况在数据库查询的 where 子句中很常见。
我的例子中的 where 子句如下所示,我无法让它与 where() 和 orwhere() 方法以及人们在其他帖子中建议的技巧一起使用。任何信息表示赞赏。谢谢。
where a = 1 and b = 2 and (c = 3 or c = 4) and (d = 5 or d = 6)
另一层复杂性是,我可以将所有“and”条件合并到一个数组中,并将其输入一个 where() 方法,但我必须将“or”条件分组到单独的数组中,以及在代码中动态收集多少组,比如下面的。
$and = [['a', '=', 1], ['b', '=', 2], ...];
if($cond1) $or['or1'] = [['c', '=', 3], ['c', '=', 4], ...];
if($cond2) $or['or2'] = [['d', '=', 5], ['d', '=', 6], ...];
if($cond3) $or['or3'] = [['e', '=', 7], ['e', '=', 8], ...];
...
PS:我要感谢所有回复(帖子或评论)的人。我认真考虑了所有建议并尝试了一些可以应用于我的案例的建议,但不幸的是它们都不起作用。所以我的解决方案只是编译一个原始的 where 子句,如上面给出的示例所示,并使用 whereRaw() 方法。这样做很简单,而且效果很好。
红颜莎娜
侃侃无极
侃侃尔雅
杨魅力