在Laravel中向API资源链接添加参数 - php

我的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中不包含“ reviewed = true”参数,因此第2页及以后的页面将返回所有帖子。我需要所有URL都包括原始请求中传递的任何参数。

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

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

参考方案

我遇到了同样的问题。实际上,由于您的问题,我发现this similar post可以帮助我找到适合我的情况的解决方案。

请尝试以下方法:

// You must add this Facade in the 'use' section of your file:
use Illuminate\Support\Facades\Input;

return SocialPostResource::collection(
    SocialPost::with(['images', 'publication.images'])
    ->paginate($pagination)
    ->appends(Input::except('page')) // <- Add this line!
);

PHP Laravel从另一个驱动器读取文件 - php

我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…

Laravel 5排序具有关系的雄辩模型 - php

我有一个要基于关系属性进行排序的模型。主模型Resultado具有类型respondente的关系belongsTo,而respondente具有关系usuario。我想获取具有这些关系的Resultado并按usuario name属性(列)对结果进行排序。我试过了$resultados = Diagnostico\Resultado::with(…

Laravel Nova自指关系 - php

在Laravel中,如果要创建自引用关系,可以执行以下操作:class Post extends Eloquent { public function parent() { return $this->belongsTo('Post', 'parent_id'); } public function childr…

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

Laravel @yield在刀片视图引擎的html标签中 - php

这可能吗?<html @yield( 'AngularNamespace' )> </html> 显然以上方法不起作用... 参考方案 这个对我有用。只要您的其他模板文件具有@section('AngularNamespace', 'NameSpaceHere')