同一页面内的多个Laravel 5 Paginations

时间:2016-03-01 12:41:57

标签: php laravel-5 pagination

我有一个容器,我想用我的数据库填充项目,比如说每一行都有这些列:

$item->title
$item->description
$item->color
$item->id

我有一个main-container,我想在我的所有项目中循环,但一次只有5个。我知道我可以拥有所有这些,但我真的希望没有滚动。

我知道在整个页面中您只需将->get();替换为->paginate(x);,其中x是您希望每页显示的项目数。

但是我还有一个secondary-container我想在其他项目中循环,但我不知道如何实现第二个项目,因为main-container可以在url扩展?page=x,其中x是迭代的第n个项目块。

我是否可以拥有自定义get网址请求(不确定该字词,如果我错了,请更正我)并为?page2=x执行secondary-container之类的操作}?

我搜索了周围但是我不知道如何将我的问题写成一个小答案,结果并没有用。提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果你看一下paginate方法:

https://github.com/laravel/framework/blob/5.2/src/Illuminate/Database/Eloquent/Builder.php#L429

您看到它接受$pageName变量,该变量告诉它使用哪个请求变量。

所以你可以这样做:

MyModel::where(...)->paginate(20, ['*'], 'fooPage');

Laravel将使用$request->fooPage作为页面变量。

或者,你可以看到paginate方法也允许你只是明确地传递页面变量本身作为第四个参数:

MyModel::where(...)->paginate(20, ['*'], null, $request->myPageVar);

现在GET变量?myPageVar=1将设置页面。