如果请求不为空,如何建立查询?

时间:2019-02-13 19:29:08

标签: laravel search input filter

我有3个输入(id,city,amount)用于过滤器和结果表。 如果没有任何要求,我需要查询Model::all()->paginate(10)

如果$request->id不为null,则需要查询Model :: where('id',$ request-> id)-> paginate(10)。

如果$request->id and $request->city and $request->amount不为空,我需要查询

Model::where(['id' => $request->id, 'city' => $request->city...])->paginate(10)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我会这样做:

  1. 逐个检查$hasId = $request->has('id') && ! empty($request->id)中的每个请求变量
  2. 基于上面显示的结果有多个where语句,例如:
$model = New Model();
if ($hasId) {
 $model->where('id', $id);
}
...

口才使用Fluent,因此您不必将其分配回来,只需像在明天一样将其附加在语句上即可。

  1. 利润