2015-08-01 4 views
0

Я пытаюсь сделать условное утверждение внутри запроса Laravel, возможно ли это? В PLSQL я бы сделал следующее, чтобы сделать, ЕСЛИ ELSE, могу ли я сделать это в Laravel Rloquent?Laravel Eloquent Условный внутри Запрос как PLSQL

select * 
from x 
where x.id = 1 
and ((varName = 'all') OR (x.name = 'red')) 

Что происходит там есть пользователь выбирает из выпадающего downbox (VarName), и либо собирание всех цветов, как «все», или собирания отдельных цветов.

Я знаю, что было бы легко написать два оператора IF Else и дублировать SQL с каждым условием, но у меня действительно большой SQL, и я не хочу дублировать весь SQL дважды просто для чего-то простого. Можно ли это сделать в Ларавеле? Или есть другие способы его достижения?

ответ

1

Вы можете использовать whereRaw для этого, например

... 
->where('x.id','=',1) 
->whereRaw('(varName = "all" or x.name="red")') 
... 

Пожалуйста, обратите внимание, что исходный запрос не удалось избежать по умолчанию, так что не забудьте сделать это, если пользовательский ввод обработки.

+0

whereRaw работал! Спасибо. –

Смежные вопросы