2016-06-30 2 views
1

Я использую GET, чтобы собрать переменный:Где пункт с пустой переменной Laravel

$subid = $_GET['subid']; 

В моем DB Query я следующее:

->where('subID', '=', $subid) 

Теперь, если переменный $ субидентификатор пустой , результат не возвращает никакой информации. Как указать в запросе, что если переменная $ субад пуста или пуста, верните все результаты?

ответ

2

Вы можете использовать when.

->when($subid, function ($query) use ($subid) { 
    return $query->where('subID', '=', $subid); 
}) 

Если $ subid false, условие where не будет применено к запросу.

Заканчивать док https://laravel.com/docs/5.2/queries#conditional-statements

UPDATE:

Любое выражение, которое можно использовать внутри if вызова может быть использован в качестве первого аргумента when

Пример:

->when($fromDate && $toDate, function($query) use ($fromDate, $toDate) { 
    return $query->whereBetween('CompletedDate', array($fromDate, $toDate)); 
}) 
+0

что делать, если запрос whereBetween Query. -> whereBetween ('CompletedDate', массив ($ fromDate, $ toDate)). благодаря – Matt

0

Вы можете использовать orWhere():

->where('subID', '=', $subid) 
->orWhere('subID', '=', ''); 
Смежные вопросы