Laravel - 排序和过滤存储库

时间:2015-12-21 21:30:48

标签: php laravel pagination repository

所以我正在创建一个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万个贡献条目,所以向它们发送一切显然是行不通的。任何想法/建议都会很棒。

0 个答案:

没有答案