
最佳答案




讨论数量:
复用率高,而且要跨方法调用的话可以用 scope
function scopeFuncName($query, $request)
{
$query->where(XXX)->where(XXX)->where(XXX);
}
User::funcName($request)->paginate();
public function scopeSearch(Builder $query, array $search)
{
if (isset($search['category_id']) && $search['category_id']) {
$query->where('category_id', $search['category_id']);
}
if (isset($search['user_id']) && $search['user_id']) {
$query->where('user_id', $search['user_id']);
}
return $query;
}
我一般是用局部作用域封装个查询,公用一个builder。 再说paginate返回的有个total字段,为什么还要sum