return $this->runSortQuery(
$query->when($request->has('filter'),
function($query) use ($request) {
return $query->search($request->filter);
}
)->when($request->has('with'),
function($query) use ($request) {
return $query->with(
explode(',', $request->with)
);
}
)->when($request->has('scopes'),
function($query) use ($request) {
return $query->scopes(
json_decode($request->scopes, true)
);
}
) , $request
)->paginate((isset($request->paginate)) ? $request->paginate : 15);
是否有可能在每个
when
使用自定义函数调用?我之所以要这样做,是因为这个基函数越来越长,我希望回调中的方法在它自己的函数中,为了可读性和保持可维护性。
$query->when($request->has('filter'), $this->filter($query, $request->filter))
->when($request);
这可以用另一种方法来实现吗?或者什么样的模式或方法可以做到这一点?