【发布时间】:2018-04-01 18:12:44
【问题描述】:
有没有办法在 Laravel 中实现可选的 WHERE,这是我的查询
$people = \App\people::query()
-> select ('people.name', 'people.username', 'price', 'service','people.city', 'people.streetaddress', 'people.postalcode', DB::raw("GROUP_CONCAT(DATE_FORMAT(datetime, '%H:%i')) as times"))
-> groupBy('people')
-> leftjoin ('services' , 'people.id', '=', 'services.people_id')
-> leftjoin ('imagesforpeople' , 'people.id', '=', 'imagesforpeople.people_id')
-> whereDate ('datetime', '=', $request->get('date'))
-> whereTime ('datetime', '=', $request->get('time'))
-> get();
在这里,我希望这条线是可选的
-> whereTime ('datetime', '=', $request->get('time'))
所以,如果搜索不包含时间,它将完全忽略这行查询。
需要whereDate,但不需要whereTime。如果获取到时间请求,则查询时间,如果没有获取到时间请求,则忽略 whereTime 查询,只显示 whereDate 的结果。
如何在 Laravel 中实现这一点?
【问题讨论】:
-
您可以将其分解为过滤器laraveltnt.com/conditional-eloquent-clauses
标签: php mysql laravel laravel-5.3