【问题标题】:Laravel Pagination links() not workingLaravel 分页链接()不起作用
【发布时间】:2018-06-25 08:37:43
【问题描述】:

在我的控制器中执行此操作后

   $activities = Package::where('attraction',1)
              ->where('hotel', 0)
              ->where('flight', 0)
              ->paginate(2);
          return view('frontend.activities',compact('activities'));

我在这个格式中的刀片页面上添加了添加的 for

@foreach($activities as $activity)
                    <div class="col-md-3 page-content-1">
                        <div class="thumb">
                            <header class="thumb-header">
                                <a class="hover-img" href="{{url('/flight-details')}}">
                                    <img src="img/new_york_at_an_angle_800x600.jpg" alt="Image Alternative text" title="new york at an angle" />
                                    <h5 class="hover-title-center">Book Now</h5>
                                </a>
                            </header>
                            <div class="thumb-caption">
                                <ul class="icon-group text-tiny text-color">
                                    <li><i class="fa fa-star"></i>
                                    </li>
                                    <li><i class="fa fa-star"></i>
                                    </li>
                                    <li><i class="fa fa-star"></i>
                                    </li>
                                    <li><i class="fa fa-star"></i>
                                    </li>
                                    <li><i class="fa fa-star"></i>
                                    </li>
                                </ul>
                                <h5 class="thumb-title"><a class="text-darken" href="{{url('/flight-details')}}">Manhattan Skyline</a></h5>
                                <p class="mb0"><small><i class="fa fa-map-marker"></i> Queens (LaGuardia Airport (LGA))</small>
                                </p>
                                <p class="mb0 text-darken"><span class="text-lg lh1em text-color"><small >from</small> Free</span>
                                </p>
                            </div>
                        </div>
                    </div>
                    @endforeach

然后我在页面上添加了{{ $activities-&gt;links() }}。 每当呈现视图时, links() 不会显示页面的链接。 我错过了什么还是我做错了什么

P.S:我也试过{{$activities-&gt;render()}},也没用。

【问题讨论】:

  • 抱歉,无法解决,正在尝试其他方法
  • 究竟是什么不起作用?这是一种官方方式来做你想做的事,我很确定这行得通。你有错误吗?
  • 链接栏不显示。
  • 你看到我的回答了吗?这是一个有效的解决方案。
  • 如果这仍然是一个问题:您尝试过什么来调试问题?您是否检查过是否应该比一页上列出的结果多?

标签: php laravel pagination


【解决方案1】:

在“@endforeach”语句之后添加以下行

{{ $activities->links('pagination::bootstrap-4') }}

如果使用bulma css而不是bootstrap 4,自定义分页视图。

将以下“bulma.blade.php”文件保存在路径“resources/views/vendor/pagination”中

如果文件夹 vendor 不存在于 views 文件夹中,只需创建它或运行以下命令

php artisan vendor:publish --tag=laravel-pagination

bulma.blade.php

@if ($paginator->hasPages())
    <nav class="pagination is-centered" role="navigation" aria-label="pagination">
        {{-- Previous Page Link --}}
        @if ($paginator->onFirstPage())
            <a class="pagination-previous"  disabled>Previous</a>
        @else
            <a class="pagination-previous" href="{{ $paginator->previousPageUrl() }}" rel="prev">Previous</a>
        @endif

        <ul class="pagination-list">
            {{-- Pagination Elements --}}
            @foreach ($elements as $element)
                {{-- "Three Dots" Separator --}}
                @if (is_string($element))
                    <li><span class="pagination-ellipsis">{{ $element }}</span></li>
                @endif

                {{-- Array Of Links --}}
                @if (is_array($element))
                    @foreach ($element as $page => $url)
                        @if ($page == $paginator->currentPage())
                            <li><span class="pagination-link is-current">{{ $page }}</span></li>
                        @else
                            <li><a href="{{ $url }}" class="pagination-link">{{ $page }}</a></li>
                        @endif
                    @endforeach
                @endif
            @endforeach
        </ul>

    {{-- Next Page Link --}}
    @if ($paginator->hasMorePages())
        <a class="pagination-next" href="{{ $paginator->nextPageUrl() }}" rel="next">Next page</a>
    @else
        <a class="pagination-next" disabled>Next page</a>
    @endif
@endif

在“@endforeach”语句之后添加以下行

{{ $activities->links('vendor.pagination.bulma') }}

【讨论】:

  • 看起来不太好:控制器不应该保存这么多数据。另外,为什么是PaginateController
  • 如果你不使用引导程序怎么办?我已禁用引导程序并改用 Bulma。
  • 谢谢,它成功了。还有其他选择吗?除了 (pagination::bootstrap-4)
【解决方案2】:

在 Laravel 5.5 中,如果 Paginator 对象只有一页,则不会显示分页链接。

如果你想显示这些链接,你需要customize the pagination view

1. 运行此命令将分页视图复制到resources/views/vendor/pagination

php artisan vendor:publish --tag=laravel-pagination

2.编辑resources/views/vendor/pagination/default.blade.php

更改第一行:

@if ($paginator->hasPages())

收件人:

@if ($paginator->count > 0)

【讨论】:

  • 这完全应该被标记为正确答案!
【解决方案3】:

在刀片文件中尝试此代码:

{!! $activities->render() !!}

而不是

{{$activities->render()}}

【讨论】:

    【解决方案4】:
        $items = $user_1->all();
    
        // Store records in an array
        $records = [];
    
        $i = 0;
        foreach($items as $item)
        {
            $records[$i][0] = $item->user_name;
            $records[$i][1] = $item->rech_mobile;
            $i++;
        }
    
    
        /****above code was replaced by the following code***/
        $items = $user_1->all()->toArray();
           /***---toArray() function used to convert object to array***/
    

    【讨论】:

    • 请在您的代码中添加一些解释。此外,您的代码包含语法错误。最后一行应该是注释。在发布之前重新阅读您的答案。
    【解决方案5】:
    controller:   $users = DB::table('users')->Paginate(10);
     view file  : {{$users->links('vendor.pagination.default')}}
    

    运行命令:

    php artisan vendor:publish --tag=laravel-pagination
    

    【讨论】:

      【解决方案6】:

      据此交易https://stackoverflow.com/a/63852468/10938614 Laravel 8 提供了新的方法和选项来添加分页的显示方式。

      AppServiceProvider类中添加分页如下

      use Illuminate\Pagination\Paginator;
      
      /**
       * Bootstrap any application services.
       *
       * @return void
       */
      public function boot()
      {
          Paginator::useBootstrap();
      }
      

      【讨论】:

        猜你喜欢
        • 2021-01-11
        • 2014-12-09
        • 1970-01-01
        • 2016-02-03
        • 1970-01-01
        • 1970-01-01
        • 2022-11-16
        相关资源
        最近更新 更多