【问题标题】:Laravel pagination is not working after first pageLaravel 分页在第一页后不起作用
【发布时间】:2018-11-30 03:37:45
【问题描述】:

我正在开发一款行李管理应用程序。当我尝试在报告中对发货详细信息进行分页时,它无法正常工作。它在第一页工作正常,但是当我单击第二页链接时,它显示空白页。

ReportsController.php

parcelreport.blade.php

我的路线是

web.php

【问题讨论】:

    标签: laravel pagination


    【解决方案1】:

    您似乎需要将tofrom 附加到链接中。

    {{ $shipments->appends(['from' => $from, 'to' => $to])->links() }}
    

    Documentation(向下滚动到附加到分页链接

    【讨论】:

    • 是的,我试过了。我的 URL 正在更改,但没有附加数据。
    • 我也试过 {{ $shipments->appends($_GET)->links() }}。还是不行
    • @RajaDurai 当涉及到 Laravel 时,请避免使用诸如 $_GET$_POST 之类的超全局变量,而是使用请求。您如何获得 tofrom 变量的原始值?如果它们已经设置,它们只会包含在链接中。
    • @RajaDurai 没关系,我没有看到 web.php 图像。将来,请您将代码添加到您的问题中,而不是附加图像,因为它在能够复制您的问题和帮助解决方案方面确实有很大帮助。
    【解决方案2】:

    你可以试试这个。希望对你有帮助

    {{ $shipments->appends(Request::all())->links() }}
    

    【讨论】:

    • 当我执行 Request::all() 时,它还会在 URL 中显示令牌值。这会是一个好方法吗?
    • 在这种情况下,您可以使用except 方法。使用{{ $shipments->appends(Request::except('token'))->links() }}
    【解决方案3】:

    这是因为您在路线中使用了 post。单击链接后,您的浏览器会重定向,但它只是从您创建的第一个路由加载视图,而不是通过使用控制器的帖子运行。尝试更改第二个路由的 URL 并将其设置为 get,以便您可以使用控制器实际处理第二个、第三个...页面。或者让所有请求通过控制器运行并检查$request->to$request->from是否存在,是否应该进行数据库查询。

    【讨论】:

    • 感谢您的解释。它帮助了我。实际上我也在从视图中发出一个帖子请求,所以我无法将其作为获取。但是我删除了第一条路由,通过Controller调用了balde。我使用了路线“任何”。然后它运行良好。
    • 嗨,我也有同样的问题。你把“任何”改成了什么?您能否添加一些 ss 以显示您更改了什么?谢谢。
    • 我的意思是 Route::any('your-url', 'yourcontroller@method')。如果您需要更多帮助,请告诉我
    【解决方案4】:

    $chunk = $collection->forPage(2, 3);///页码,每页的项目数

    $chunk->all();

    来自 laravel 文档

    https://laravel.com/docs/5.7/collections#method-forpage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 2014-08-15
      • 2020-11-18
      相关资源
      最近更新 更多