【问题标题】:Laravel pagination: Append query parameter without valueLaravel分页:附加没有值的查询参数
【发布时间】:2017-06-24 09:59:56
【问题描述】:

我有一个分页实例,我想将请求中的所有查询参数附加到next_page_url 属性。

我有一个像&name=chris 这样的值的查询参数,但我也有一个没有像&xyz 这样的值的参数。

但是,当我将所有查询参数附加到分页实例时,如下所示:

$query->simplePaginate(50)->appends($request->all());

只有带值的参数才会被附加。

如何将所有参数附加到next_page_url

更新

我想附加查询参数以获取下一个请求数据。

如果我不这样做,它总是会返回“next_page_url”:“http://vue.dev/contacts?page=2”。我想要的是 "next_page_url":"http://vue.dev/contacts?name&page=2"

【问题讨论】:

  • 想知道,为什么要附加查询参数?
  • @joshuamabina 获取下一个请求数据块。如果我不附加它总是会返回“next_page_url”:“http:\/\/vue.dev\/contacts?page=2”。我想要的是 "next_page_url":"http:\/\/vue.dev\/contacts?name&page=2"
  • 额外的参数(即名称)有什么用? next_page_url 应该只是保存 下一页的网址
  • 试试这个:$query->simplePaginate(50)->appends(Input::query());
  • @SKJajoriya 相同的结果。

标签: php laravel pagination laravel-5.4


【解决方案1】:

以网址http://vue.dev/contacts?page=2&name 为例。尽管完全有效,但它仍然很模棱两可。我们的意思是包含名称吗?我们的意思是排除名字吗?

所以我建议您改用此 URL http://vue.dev/contacts?page=2&select=name。如果你决定选择更多的东西,你可以做http://vue.dev/contacts?page=2&select=name,age,gender

稍后在您的代码中只需使用explode 将值用作数组:

$attributes = explode(',', $request->select);

有用的阅读:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

【讨论】:

    【解决方案2】:

    尽管 Fahmis 解决方案也是可能的,但我最终还是使用了来自 this so-question 的方法。这样做的好处是 php 会自动将参数读取为数组。我的网址最终看起来像这样:

    http://vue.dev/contacts?page=2&select[]=xyz&select[]=abc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-15
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多