首页 > 解决方案 > Laravel Eloquent 如果变量存在查询它

问题描述

我有一个包含两个可选字段的表单,即日期和位置。如果用户选择其中任何一个,则查询将使用他们选择的字段以及必填字段。有没有办法使用 eloquent 所以如果变量有值在查询中使用它,如果没有忽略它。我知道我可以使用多个 if 语句,但我想知道是否有更有效的方法。

标签: phplaraveleloquent

解决方案


是的,你可以像下面那样做。当它具有来自 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();

推荐阅读