【发布时间】:2019-03-17 08:44:52
【问题描述】:
我有一个状态为 o 或 1 的事件表。
我必须过滤状态为 1,0 或 ALL 的事件。
当条件子句时我尝试使用 laravel,它不能使用零值,其他条件正在工作。
$status = Input::get('status');
$events = DB::table('events')
->select('events.*')
->when($status, function ($query) use ($status) {
return $query->where("events.status",$status);
})
->get();
【问题讨论】:
-
试试
$status = Input::get('status') ? 1 : 0;。状态参数可能是一个字符串,您只需要两个选项 1 和 0(用户可以更改状态参数) -
您是否阅读了laravel.com/docs/master/queries 的文档?它指出“when 方法仅在第一个参数为 true 时执行给定的 Closure。如果第一个参数为 false,则不会执行 Closure。”
标签: php laravel laravel-query-builder