我正在尝试在Laravel查询中做条件语句,这可能吗? 在PLSQL中,我会执行以下操作来执行IF ELSE,我可以在Laravel Eloquent中执行此操作吗?
select *
from x
where x.id = 1
and ( (varName = 'all') OR (x.name = 'red') )
正在发生的事情是用户从下拉框(varName)中挑选,并选择所有颜色为“全部”,或选择单个颜色。
我知道编写两个IF Else语句并在每个条件下复制SQL会很容易,但是我有一个非常大的SQL,并且不希望为了简单的事情而复制整个SQL两次。在Laravel可以这样做吗?或者还有其他方法可以实现它吗?
答案 0 :(得分:1)
您可以使用whereRaw,例如
...
->where('x.id','=',1)
->whereRaw('(varName = "all" or x.name="red")')
...
请注意,默认情况下不会对原始查询进行转义,因此请务必在处理用户输入时执行此操作。