I have many API resources in my Laravel 5.5 app. So far they are great but I am having a problem persisting URL parameters in pagination links.
See the example below 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));
}
The example below includes only posts that have been revised. This works perfectly in the first query. The problem is that pagination results do not include the “reviewed=true” parameter in the URL, so page 2 and beyond will return all posts. I need for all URLs to include any parameters passed in the original request.
“data”:{...},
“links”:{
...
“next”: “/posts?page=2”
}
The result I expect is “/posts?unreviewed=true&page=2”