所以我正在创建一个5.1版的Laravel API。我正在使用存储库。我在创建Laravel应用程序时非常有成就,没有使用存储库,并且由于我在网上找到的建议决定尝试一下。我当前的问题是在API请求调用它时找到一种有效且不复杂的排序和过滤方法。
我找到了一些指向我方向的网站,但最终我无法抓住它。例如,我有一个Contributions控制器,我正在尝试创建一个允许分页/排序/过滤的索引方法。
ContributionsController @指数:
public function index(Request $request, ContributionInterface $contributionRepo)
{
if (config('cache.cache_results')) {
$contributions = Cache::tags(['contributions'])->remember("contributions.index", 60, function() use ($memberId, $contributionRepo){
return $contributionRepo->paginate();
});
} else {
$contributions = $contributionRepo->paginate();
}
$transformedData = $this->fractal->paginatedCollection($contributions, new ContributionTransformer());
return $this->sendResponse($transformedData['data'], $transformedData['meta']);
}
这将为我提供一个分页的贡献索引....没什么大不了的...但现在我需要能够接受用户定义的排序和过滤,并且无法使用存储库来完成它。不,他们不能在前端排序和过滤,因为我只返回15项和分页元数据。这是必要的,因为目前只有100万个贡献条目,所以向它们发送一切显然是行不通的。任何想法/建议都会很棒。