【问题标题】:laravel show only next and previous link in paginationlaravel 仅在分页中显示下一个和上一个链接
【发布时间】: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 中自定义分页,请查看 stackoverflow.com/questions/28240777/…

标签: php laravel laravel-4 pagination laravel-pagination


【解决方案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 的最底部以了解如何为分页实现自定义视图。总而言之,您需要遵循以下步骤:

        1. app/views 的某处为分页器创建一个视图。
        2. app/config/views.php 中的 pagination 选项替换为 Laravel 用于定位新视图的路径。
        3. 在您的视图中显示您的自定义分页视图,如下所示:

          <?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 文件夹和浏览器缓存。
        猜你喜欢
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 2014-12-14
        • 1970-01-01
        • 2020-05-27
        • 2013-04-08
        • 1970-01-01
        • 2012-03-15
        相关资源
        最近更新 更多