laravel 仅在分页中显示下一个和上一个链接
Posted
技术标签:
【中文标题】laravel 仅在分页中显示下一个和上一个链接【英文标题】:laravel show only next and previous link in pagination 【发布时间】:2014-11-26 17:21:37 【问题描述】:我正在尝试使用 Laravel 分页,我只想显示没有数字 1 2 3 的上一个和下一个链接 ...
我怎么能这样做?我关注了 Laravel 页面: “简单分页”
如果您只在分页视图中显示“下一个”和“上一个”链接,您可以选择使用 simplePaginate 方法来执行更有效的查询。当您不需要在视图上显示确切的页码时,这对于较大的数据集很有用:
$someUsers = User::where('votes', '>', 100)->simplePaginate(15);
但是当我在我的视图中这样做时,这仍然会显示页码:
<?php echo $someUsers->links(); ?>
谁能帮忙
谢谢
【问题讨论】:
这里的所有答案都为您提供了一些信息,但没有人回答如何执行您要求的 inline - 请查看我的答案以了解详细信息。 如果有人在寻找如何在 Laravel 5.3 中自定义分页,请查看 ***.com/questions/28240777/… 【参考方案1】:我试过了,它对我有用:
$someUsers->links('pagination::bootstrap-4')
【讨论】:
【参考方案2】:tldr;您想在分页器(在视图中)上的查询 AND links('some.view')
上使用 simplePaginate()
方法以实现您的要求。
以下是在给定模板中显示所选链接所需的内容:
// inline choose simple links (prev, next)
$someUsers->links('pagination::simple')
// inline choose slider links
$someUsers->links('pagination::slider')
// inline choose slider-3 (default)
$someUsers->links('pagination::slider-3')
这些是框架的模板,放在 laravels 目录:Illuminate/Pagination/views/
您总是可以决定使用您的自定义模板,因为这个简单的调用:
// assuming you have it in app/views/pagination/my-links.blade.php
$someUsers->links('pagination.my-links')
// or using views namespace (you need to define it first)
$someUsers->links('myNamespace::my-links')
当然你可以在app/config/view.php
中定义你的默认链接:
// instead of
'pagination' => 'pagination::slider-3',
// something like
'pagination' => 'pagination.my-links',
【讨论】:
【参考方案3】:你需要使用:
$someUsers = User::where('votes', '>', 100)->simplePaginate(15);
如你所用
在app/config/view.php
中,您需要将pagination
设置为pagination::simple
(默认设置为pagination::slider-3
)。然后你将默认分页,如图所示:
您还可以为上一个和下一个项目编辑文件lang/en/pagination.php
设置自定义文本(对于其他语言,您当然需要在其他语言目录中更改它)。默认情况下,它设置为:
'previous' => '« Previous',
'next' => 'Next »',
但您可以将其更改为:
'previous' => '«',
'next' => '»',
然后它看起来就像在图像中:
【讨论】:
【参考方案4】:查看this manual page 的最底部以了解如何为分页实现自定义视图。总而言之,您需要遵循以下步骤:
-
在
app/views
的某处为分页器创建一个视图。
将 app/config/views.php
中的 pagination
选项替换为 Laravel 用于定位新视图的路径。
在您的视图中显示您的自定义分页视图,如下所示:
<?php echo with(new ZurbPresenter($paginator))->render(); ?>
ZurbPresenter
是分页演示者的类名。
【讨论】:
为什么我需要自定义分页,在这里阅读 laravel 手册:laravel.com/docs/4.2/pagination 在“简单分页”下,为什么它显示其他页码?【参考方案5】:在config/view.php
:
/*
|--------------------------------------------------------------------------
| Pagination View
|--------------------------------------------------------------------------
|
| This view will be used to render the pagination link output, and can
| be easily customized here to show any view you like. A clean view
| compatible with Twitter's Bootstrap is given to you by default.
|
*/
'pagination' => 'pagination::slider-3',
将此设置为simple
。
来源:http://youtu.be/lIEcyOUcNQk?t=8m00s
【讨论】:
这会改变所有这些还是我仍然可以使用 simplePaginate 和 paginate() 方法? 确定没有此文件的环境版本,内容不同? 我把它改成了简单的,现在它可以工作了,但是现在我所有的分页只显示了上一个和下一个,我可以有一些有页面,一些没有页面吗? 根据文档 (laravel.com/docs/4.2/pagination),按照您的尝试应用->simplePaginate(15);
。确定您没有缓存结果或更新错误的行?
您应该尝试的另一件事是,清除您的 app/storage/view
文件夹和浏览器缓存。以上是关于laravel 仅在分页中显示下一个和上一个链接的主要内容,如果未能解决你的问题,请参考以下文章