您可以Model::when()
在 Condition 中使用,也可以创建Builder::micro()
例如
$results = Model::where('user_id', Auth::id())
->when($request->customer_id, function($query) use ($request){
return $query->where('customer_id', $request->customer_id);
})
->get();
如果您需要为条件创建微,那么。按照以下说明进行操作。
在您的服务提供商中编写代码
Builder::macro('if', function ($condition, $column, $operator, $value) {
if ($condition) {
return $this->where($column, $operator, $value);
}
return $this;
});
使用如下示例
$results = Model::where('user_id', Auth::id())
->if($request->customer_id, 'customer_id', '=', $request->customer_id)
->get();
参考:他们说