Laravel多页分页
我的分页有麻烦。我有两个包含来自数据库的数据的表,并使用laravel Paginator对它进行了分页。
现在我的问题是,当您转到第2页时,它添加了?page = 2,但这也使第一个表也转到了第2页。
反正有得到这样的东西吗?
page_table1={number}&page_table2={number}
因此您不会在其他表格上应用页面更改。
回答:
不幸的是,我现在无法测试此代码,但是浏览文档和代码(在中Illuminate/Pagination/Environment
),我想您可能会这样:
# use default 'page' for this$collection1 = Model::paginate(20);
# use custom 'other_page' for this
$collection2 = Model2::paginate(20);
$collection2->setPageName('other_page');
该setPageName()
方法未在文档中进行记录,但与文档中指示的方法一起是公共方法,因此应该可以正常工作。供参考,这是声明(位于171.180中vendor/laravel/framework/src/Illuminate/Pagination/Environment.php
):
/** * Set the input page parameter name used by the paginator.
*
* @param string $pageName
* @return void
*/
public function setPageName($pageName)
{
$this->pageName = $pageName;
}
现在考虑到您将在URL后面附加另一个查询字符串,因此您需要告诉分页进行考虑。使用appends()
方法:
$collection1->appends(array_except(Request::query(), 'page'))->links();$collection2->appends(array_except(Request::query(), 'other_page'))->links();
也就是说,告诉每个Presenter用所有查询字符串(Request::query()
没有
分页程序使用的当前索引所产生的数组,否则将得到一个double值)来构建url
。array_except()
是Laravel内置的数组助手,它返回从传递的索引(第二个参数)中清除的给定数组(第一个参数)。
我将尝试尽快测试此代码,但它应该可以工作。无论如何都要让我知道!
以上是 Laravel多页分页 的全部内容, 来源链接: utcz.com/qa/400123.html