【问题标题】:How to append query string to pagination links using Laravel如何使用 Laravel 将查询字符串附加到分页链接
【发布时间】:2020-01-28 05:42:03
【问题描述】:

您好,感谢您的帮助。我做了一些研究并尝试了一些选项,但似乎无法让它正常工作。我将带有查询字符串的 URL 传递到通过传递的 URL 加载页面的函数中。但是,我也在尝试找到一种对结果进行分页的方法。有没有办法可以将查询字符串 url 传递给 Laravel 的分页链接?谢谢。

我的带有查询字符串的 URL

            <a id="searchData"class="btn btn-primary ml-1 mr-5 text-light" title="Search" type="submit" 
        onclick="ajaxLoad('{{url('dma/data')}}?startDate='+$('#startDate').val()+'&endDate='+$('#endDate').val() 
            + '&dmaNameFilter=' + encodeURI(dma_name) + '&memberNameFilter=' + encodeURI(member_name))">Search Results
        </a>

我为链接()尝试了这个:

{{ $data->appends(request()->query())->links() }}

我的控制器中有这个:

$data = Report::where('CallDate', '>=', $start_date)->where('CallDate', '<=', $end_date)->paginate(13)->appends(request()->query());

【问题讨论】:

  • 如果您确定 request()-&gt;query() 是一个包含 startDate/endDate / dmaNameFilter / memberNameFilter 的数组,那么刀片中的分页链接就可以了。但是在控制器中似乎不正确,我认为您应该为查询添加更多 where 条件,例如dmaNameFilter, memberNameFilter,...

标签: laravel pagination query-string laravel-blade


【解决方案1】:

您可以通过调用将任何数据传递给分页

{{ $paginator->links('view.name', ['foo' => 'bar']) }}

根据您的情况,我认为您想将查询字符串传递给分页器;你可以试试

{{ $paginator->links('view.name', request()->getQueryString() ) }}

如果您需要为您的 ajax 控制器附加查询字符串,您最好检查 https://github.com/spatie/laravel-query-builder

【讨论】:

  • 太棒了!我会试试这个。感谢您的帮助。
【解决方案2】:

你也可以添加这个:

$this->app->resolving(\Illuminate\Pagination\LengthAwarePaginator::class, function ($paginator) {
   return $paginator->appends(Arr::except(request()->query(), $paginator->getPageName()));
});

给你的 AppServiceProvider

【讨论】:

    【解决方案3】:

    试试这个

    $data->appends(request()->input())->links()
    

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多