So'rovlar mag'lubiyat sahifasini laravel paginationning birinchi sahifasidan qanday olib tashlash mumkin?

I'm using pagination like the following:

public function index()
    {
        $jobs = Job::paginate(5);
        return view('job.index', compact('jobs'));
    }

Ko'rinishida:

{{ $jobs->links() }}

Ikki sahifa odatda bir xil tarkibga ega: /job va /job? Page = 1 .

So'rovlar mag'lubiyatini sahifa -ni pagina birinchi sahifasidan olib tashlaydigan har qanday ishni qilmoqchiman.

Men quyidagilarni sinab ko'rdim:

if ($jobs->onFirstPage()){
  $jobs->setPageName('');
} 

Lekin, bu buzuq pagination, ya'ni sahifalar havolalar to'g'ri yuklamaydi va so'rovlar string qiymati barcha sahifalar uchun qoladi.

3

6 javoblar

Men topgan bu masalaning samarali echimini pagina shablonini tahrirlash .

Avval loyihaning ildizidan quyidagi buyruqni ishlatib, sotuvchilardan pagina shablonini nashr eting:

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

Endi resurslari/view/vendor/pagination/default.blade.php faylidan faylni toping va quyidagi kabi tahrir qilish mumkin: str_replace() Har bir sahifa va orqa navigatsiya tugmasi:

  • 
    

    va

     
  • {{ $page }}
  • 
    

    Yangilash:

    ? str_replace kodini ishlatish o'rniga preg_replace kodini ishlatish o'rniga, ? Page = 10 bilan xato topildi:

  • {{ $page }}
  • 
    

    Yangilash 2:

    page dan boshqa sahifa raqami parametri uchun moslashtirilgan ism ishlatilgan taqdirda, biz $ pageName xususiyatiga ega.

  • {{ $page }}
  • 
    

    Xuddi shu sahifada bir nechta sahifani qanday ishlatish yoki sahifa raqami parametrini $ pageName ko'rinishini sozlash haqida ko'proq bilishni istasangiz, bu javob

    1
    qo'shib qo'ydi

    Yo'nalishlaringizda o'zingizning vazifangizga olib boruvchi marshrutga ism bering:

    Route::get('/yourRoute','[email protected]')->name('yourRouteName');
    

    Keyin, tekshirgichdagi funktsiyani ishlatish uchun:

    public function foo() {
        if( request()->page=='1' )
        {
                return redirect()->route('yourRouteName',[$id]);
        }
         else {
               //Your function content
        }
    }
    
    0
    qo'shib qo'ydi

    Siz buni sinab ko'rishingiz mumkin deb o'ylayman:

    {{ $jobs->links() }}
    

    To

    {{ $jobs->nextPageUrl() }}
    

    Bu ishni siz uchun umid qilamiz!

    0
    qo'shib qo'ydi

    Quyidagi o'xshash ko'rinishni o'zgartirishingiz mumkin:

    @if ($page==1)
       {{ $page }}
    @else
       {{ $page }}
    @endif
    
    0
    qo'shib qo'ydi

    SEOga g'amxo'rlik qilsangiz, kanonik yorlig'i qo'shing

    Menda hech qanday fikr yo'q ...

    if($pageNum==1){
        return redirect()->to($path);
    }
    

    $ pageNum id so'rovi Request yoki urself Class

    $ path = "/ jobs"

    0
    qo'shib qo'ydi
    Bu SEO uchun, shuning uchun qo'shimcha resurslar va bir xil kontentni olish uchun trafikni iste'mol qilish haqida nima ?! Afsuski, bu men topishim kerak bo'lgan ideal echim emas.
    qo'shib qo'ydi muallif SaidbakR, manba

    You can extend LengthAwarePaginator method url($page)

    /**
     * Get the URL for a given page number.
     *
     * @param  int  $page
     * @return string
     */
    public function url($page)
    {
        if ($page <= 0) {
            $page = 1;
        }
    
       //If we have any extra query string key/value pairs that need to be added
       //onto the URL, we will put them in query string form and then attach it
       //to the URL. This allows for extra information like sortings storage.
        $parameters = ($page > 1) ? [$this->pageName => $page] : [];
    
        if (count($this->query) > 0) {
            $parameters = array_merge($this->query, $parameters);
        }
    
        return rtrim($this->path
            .(Str::contains($this->path, '?') ? '&' : '?')
            .http_build_query($parameters, '', '&')
            .$this->buildFragment(), '?');
    }
    
    0
    qo'shib qo'ydi
    Laravel Uzbek Community
    Laravel Uzbek Community
    172 ishtirokchilar

    PhP |BotsUz
    PhP |BotsUz
    93 ishtirokchilar

    Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin