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' => '&laquo; Previous',

'next'     => 'Next &raquo;',

但您可以将其更改为:

'previous' => '&laquo;',

'next'     => '&raquo;',

然后它看起来就像在图像中:

【讨论】:

【参考方案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),按照您的尝试应用 -&gt;simplePaginate(15);。确定您没有缓存结果或更新错误的行? 您应该尝试的另一件事是,清除您的 app/storage/view 文件夹和浏览器缓存。

以上是关于laravel 仅在分页中显示下一个和上一个链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在分页中获取特定行的页码

如何在分页中查看第二页

Laravel框架——分页

$ _GET在分页中丢失

ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

在 Laravel 5.1 分页中使用漂亮的 URL