Where子句带有空白变量Laravel

时间:2016-06-30 09:59:52

标签: mysql laravel where where-clause

我使用GET来收集变量:

$subid = $_GET['subid'];

在我的数据库查询中,我有以下内容:

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

现在,如果变量$ subid为空,则结果不返回任何信息。如何在查询中指定变量$ subid是空白还是空,返回所有结果?

2 个答案:

答案 0 :(得分:3)

您可以使用when

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

如果$ subid为false,则where条件不会应用于查询。

查看文档https://laravel.com/docs/5.2/queries#conditional-statements

<强>更新

您可以在if调用中使用的任何表达式都可以用作when

的第一个参数

一个例子:

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

答案 1 :(得分:0)

您可以使用Duplicate

 nvl(to_char(min(case EventType
             when 'start' then
              dates
           end),'mm/dd/yyyy hh24:mi'),'       -')