افشار محمودیان
3 سال پیش توسط افشار محمودیان مطرح شد
2 پاسخ

پیجینیشن در لاراول

سلام وققتون بخیر
من میخوام از پیجینیشن بوت استرپی لاراول استفاده کنم اما کاستومش کنم .
این کاستوم کردن رو تایجایی پیش بردم و هدفم اینه که یک چیزی مثل خط زیر باشه .
صفحه اول --- صفحه قبل --- حداکثر 5 لینک صفحه --- صفحه بعد --- صفحه آخر
1
مشکلم اینه که وقتی در صفحات ابتدایی و انتهایی پجینیشن هستم ، 8 تا لینک صفحه نشون میده و وقتی که به صفحات وسطی میرسم 5 تا ...
چطور میتونم کاری کنم که همیشه 5 تا لینک نشون بده.
2

3

این کد AppServiceProvider هست :

    public function boot()
    {
        Paginator::useBootstrap();
    }

از دستور زیر استفاده کردم و layout های پجینیشن رو publish کردم:

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

این کد کنترلر: ( به تداخل users و message توجه نکنید . تستیه)

    public function index()
    {
        return view('dashboard.user.list', [
            'users' => Message::paginate(3)->onEachSide(2),
        ]);
    }

اینم کد ویو :

{{ $users->links('vendor.pagination.custom') }}

و اینم کد های کاستوم :

(تو کد زیر یکاری کردم وقتی صفحه اول هست لینک صفحه اول و صفحه قبل نباشه . همینطور برای صفحه آخر (باگ نیست) )

@if ($paginator->hasPages())
    <nav>
        <ul class="pagination">

            @if (!$paginator->onFirstPage())
                {{-- First Page Link --}}
                <li class="page-item">
                    <a class="page-link" href="{{ $paginator->url(1) }}" rel="prev" aria-label="@lang('pagination.previous')">&laquo;</a>
                </li>

                {{-- Previous Page Link --}}
                <li class="page-item">
                    <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
                </li>
            @endif

            @php
                if(count($elements[0] ) > 2)
                    $key = 0 ;
                if(isset($elements[2]))
                    $key = 2 ;
                if(count($elements[4] ) > 2)
                    $key = 4 ;
            @endphp

            @foreach ($elements[$key] as $page => $url)

                @if ($page == $paginator->currentPage())
                    <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
                @else
                    <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
                @endif
            @endforeach

            @if ($paginator->hasMorePages())

                {{-- Next Page Link --}}
                <li class="page-item">
                    <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
                </li>

                {{-- Last Page Link --}}
                <li class="page-item">
                    <a class="page-link" href="{{ $paginator->url($paginator->lastPage()) }}" rel="next" aria-label="@lang('pagination.next')">&raquo;</a>
                </li>
            @endif

        </ul>
    </nav>
@endif

ثبت پرسش جدید
افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد
0

اساتید کسی نظری نداره ؟


افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام