3
votes

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.

5
sorry, could not solve it with that, been trying other meansLukas J
What exactly doesn't work? This is kind of an official way to do what you want and I'm pretty sure this works. Do you get an error or something?Alexey Mezenin
The links bar are not displayed.Lukas J
Did you see my answer? It's a working solution.Alexey Mezenin
If this is still an issue: what have you tried to debug the problem? Have you checked whether there should be more results than those listed on one page?Nico Haase

5 Answers

10
votes

Add the following line after "@endforeach" statement

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

If bulma css is used instead of bootstrap 4, customize the pagination view.

Save the following "bulma.blade.php" file in path "resources/views/vendor/pagination"

if the folder vendor is not present in views folder, just create it or run the following command

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

Add the following line after "@endforeach" statement

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

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
votes

Try this code in blade file:

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

instead of

{{$activities->render()}}
0
votes
    $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***/
0
votes
controller:   $users = DB::table('users')->Paginate(10);
 view file  : {{$users->links('vendor.pagination.default')}}

run the command:

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