首页 > 解决方案 > 当 URL 长度超过其限制时如何在 Laravel 中进行分页

问题描述

我正在使用 Laravel 5.2 开发一个项目,我有隐藏的 ID 值,我想从数据库中搜索 ID,稍后我将按降序对其进行排序。我写了这段代码。

控制器

$jsonObject =json_decode(request('membersdata'));
$member = (new Membermasternewdata)->newQuery();
$members=$member->whereIn('id', $jsonObject)->latest();
$members=$members->paginate(50);

查看 HTML 页面

{{$members->appends(request()->except('page'))->links()}}

My URL example http://localhost:8000/ascendingregistrationdate?_token=ktlNHgx9PLNCOQL0CE1YZT2AzmWpJeXexqOduy8F&membersdata=%5B199%2C284%2C344%2C355%2C381%2C461%2C488%2C576%2C601%2C652%2C747%2C825%2C849%2C878%2C883%2C912% 2C913%2C915%2C972%2C1004%2C1071%2C1310%2C1501%2C1534%2C1585%2C1610%2C1677%2C1854%2C1923%2C1935%2C2163%2C2301%2C2302%2C2326%2C2339%2C2717%2C2773%2C3052%2C3361%2C3446%2C3683% 2C3848%2C3853%2C3914%2C4114%2C4244%2C4311%2C4357%2C4389%2C4881%2C5312%2C5322%5D&page=2

我遇到了分页问题。对于大约 400 条记录,分页有效。但是如果我有很多记录,则分页不起作用,因为 URL 长度超过了它的限制。这个问题有什么解决方法吗?

谢谢!

标签: phplaravellaravel-5eloquentlaravel-5.2

解决方案


与其使用 GET 请求进行搜索,不如改用 POST。这样,memberdata数组可以作为 POST 数据传递,这可以对数据有更大的限制(取决于您的 PHP 配置,这将是 2+ MB。

URL 中的memberdata是导致 URL 超过最大限制的原因,因此您需要将其从 URL 中删除。


推荐阅读