我怎样才能用雄辩的语言来实现这一点?。
select * from product where name like '%value%' and (product_type = product_type_param or product_type_param = 0);
如果 product_type_param
的价值 0
是供应,它会选择所有类型的产品,考虑到名称也匹配,当然。
我的当前代码:
$result = Product::where( [ ['name', 'like', '%' .
$searchAttributes['name'] . '%'],
['product_type', '=', $searchAttributes['product_type']]]
)->get();
想法是这样的(请原谅这个例子,它只显示了我的意图):
['product_type', '=', $searchAttributes['product_type']] or [$searchAttributes['product_type'] == 0]]
我应该执行原始查询吗?
2条答案
按热度按时间xsuvu9jc1#
可以使用闭包函数来限定查询的范围
xfb7svmp2#
使用
orWhere
: