将参数添加到Laravel中的API资源链接

时间:2017-09-18 01:55:12

标签: php laravel laravel-5

我的Laravel 5.5应用程序中有很多API资源。到目前为止它们很棒,但我在分页链接中持久存在URL参数时遇到问题。

请参阅下面的示例 网址:/ posts?unreviewed = true

    public function getPosts(Request $request){

    /*
     * Gets a list of posts.
     *
     * Options:
     *  - unreviewed: gets posts without revisions (default: false)
     *
     */

    $pagination = 20;

    //Check constrains
    if($request->unreviewed == true){
        return SocialPostResource::collection(SocialPost::with(['images', 'publication.images'])
            ->doesntHave('revisions')
            ->paginate($pagination));
    }

    return SocialPostResource::collection(SocialPost::with(['images', 'publication.images'])->paginate($pagination));

}

以下示例仅包含已修订的帖子。这在第一个查询中完美地工作。问题是分页结果不包括URL中的“Viewed = true”参数,因此第2页及更高版本将返回所有帖子。我需要所有URL都包含原始请求中传递的任何参数。

“data”:{...},
“links”:{
   ...
   “next”: “/posts?page=2”
}

我期望的结果是“/ posts?unreviewed = true& page = 2”

1 个答案:

答案 0 :(得分:5)

我遇到了同样的问题。事实上,多亏了你的问题,我发现this similar post帮助我找到了适用于我案例的解决方案。

请试试这个:

{ 
 ... 

 let url = fillPhotoUrl(uploadTask.snapshot.downloadURL);

 ...
}