Laravel Eloquent if 变量存在查询

Aar*_*ron 2 php laravel eloquent

我有一个带有两个可选字段的表单:日期和位置。如果用户选择其中任何一个,则除了必填字段之外,查询还会使用他们选择的字段。有没有一种方法可以使用 eloquent,以便如果变量具有值,则在查询中使用它,如果没有则忽略它。我知道我可以使用多个 if 语句,但我想知道是否有更有效的方法。

sum*_*mit 5

是的,有,你可以像下面这样做。当条件在 POST 中有价值时,只需链接条件即可

$query = Item::where(id,$id);

if ($request->date) {
    $query->where(date,$request->date);
}

if ($request->location) {
    $query->where(location,$request->location);
}

$items = $query->get();
Run Code Online (Sandbox Code Playgroud)