您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Laravel多页分页

Laravel多页分页

不幸的是,我现在无法测试此代码,但是浏览文档和代码(在中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内置的数组助手,它返回从传递的索引(第二个参数)中清除的给定数组(第一个参数)。

我将尝试尽快测试此代码,但它应该可以工作。无论如何都要让我知道!

其他 2022/1/1 18:14:26 有469人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶