我有一个状态为0或1的事件表。
我必须过滤状态为1、0或ALL的事件。
我试过使用laravel的when条件子句,它不适用于零值,其他条件句都适用。
$status = Input::get('status');
$events = DB::table('events')
->select('events.*')
->when($status, function ($query) use ($status) {
return $query->where("events.status",$status);
})
->get();
2条答案
按热度按时间czfnxgou1#
when
方法中使用的in_array
函数请尝试以下方法因为0(零)表示默认情况下理解为(假),所以尝试在when方法中使用内部函数
如果未通过状态,则将默认值设置为
2
或除0,1 and null
之外的任何数字第二种方法创建新函数
roqulrg32#
对于任何将来使用0和1的读卡器
我们可以按以下方式使用when
我们正在获取用户请求的状态,使用Laravel中的has方法进行处理。