Laravel Pagination links() not working

2019-07-26 03:37发布

问题:

After doing this in my controller

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

I added the added the for on my blade page in this fomrmat

@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

then i added {{ $activities->links() }} on the page. Whenever present the view, the links() does not display the links for the pages. Am i missing something or is there something that i am doing wrong

P.S : I have also tried {{$activities->render()}} , it did not work too.

回答1:

Try this code in blade file:

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

instead of

{{$activities->render()}}


回答2:

In Laravel 5.5 if Paginator object has just one page, pagination links will not be displayed.

If you want to display these links anyway, you need to customize the pagination view.

1. Run this command to copy pagination views to resources/views/vendor/pagination:

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

2. Edit the resources/views/vendor/pagination/default.blade.php.

Change the very first line:

@if ($paginator->hasPages())

To:

@if ($paginator->count > 0)


回答3:

    $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***/


回答4:

controller:   $users = DB::table('users')->Paginate(10);
 view file  : {{$users->links('vendor.pagination.default')}}

run the command:

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


回答5:

Add the following line after "@endforeach" statement

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

If links are not present, then check whether bootstrap version 4 css included in your project..