Sarıkaya Dev Logo

Laravel’de Pagination ve Sıralama İşlemleri

Mahmut Sarıkaya 3 min read 632 Views 0
Laravel’de Pagination ve Sıralama İşlemleri

Pagination Nedir?

Pagination, büyük veri setlerini birden fazla sayfaya bölerek kullanıcıya sunma işlemidir. Örneğin, bir blog sitesinde yüzlerce gönderi varsa, bu gönderileri 10’ar 10’ar sayfalara bölerek kullanıcıya sunabilirsiniz. Bu, kullanıcı deneyimini iyileştirir ve performansı artırır.


Laravel’de Pagination Kullanımı

Laravel’de pagination işlemleri oldukça kolaydır. Eloquent ORM, pagination için paginate metodunu sunar. Örneğin, bir blog gönderisi listesini sayfalamak için:


namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::paginate(10);
        return view('posts.index', compact('posts'));
    }
}

Bu kod, gönderileri 10’ar 10’ar sayfalara böler ve $posts değişkeni ile Blade template’e gönderir.


Blade Template’de Pagination Gösterme

Blade template’de pagination linklerini göstermek için links metodunu kullanabilirsiniz. Örneğin:


<!-- posts/index.blade.php -->
@foreach ($posts as $post)
    <div>
        <h2>{{ $post->title }}</h2>
        <p>{{ $post->excerpt }}</p>
    </div>
@endforeach

{{ $posts->links() }}



Bu kod, gönderi listesini ve pagination linklerini gösterir. Laravel, otomatik olarak sayfalama linklerini oluşturur.


Özelleştirilmiş Pagination

Eğer pagination linklerini özelleştirmek istiyorsanız, Laravel’in sunduğu özellikleri kullanabilirsiniz. Örneğin, Bootstrap stilinde pagination linkleri oluşturmak için:


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

Bu komut, pagination view dosyalarını resources/views/vendor/pagination dizinine kopyalar. Bu dosyaları düzenleyerek pagination linklerini özelleştirebilirsiniz.


Sıralama İşlemleri

Sıralama işlemleri, kullanıcıların verileri belirli bir kritere göre sıralamasını sağlar. Örneğin, gönderileri tarihe veya başlığa göre sıralamak isteyebilirsiniz.


Örnek Sıralama Kodu:

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function index(Request $request)
    {
        $sortBy = $request->get('sort_by', 'created_at'); // Varsayılan sıralama kriteri
        $order = $request->get('order', 'desc'); // Varsayılan sıralama yönü

        $posts = Post::orderBy($sortBy, $order)->paginate(10);
        return view('posts.index', compact('posts', 'sortBy', 'order'));
    }
}


Bu kod, sort_by ve order parametrelerine göre gönderileri sıralar ve sayfalar.


Blade Template’de Sıralama Linkleri

Blade template’de sıralama linkleri oluşturmak için aşağıdaki gibi bir yapı kullanabilirsiniz:


<!-- posts/index.blade.php -->
<a href="{{ route('posts.index', ['sort_by' => 'title', 'order' => $order === 'asc' ? 'desc' : 'asc']) }}">
    Başlık {{ $sortBy === 'title' ? ($order === 'asc' ? '▲' : '▼') : '' }}
</a>

<a href="{{ route('posts.index', ['sort_by' => 'created_at', 'order' => $order === 'asc' ? 'desc' : 'asc']) }}">
    Tarih {{ $sortBy === 'created_at' ? ($order === 'asc' ? '▲' : '▼') : '' }}
</a>

@foreach ($posts as $post)
    <div>
        <h2>{{ $post->title }}</h2>
        <p>{{ $post->excerpt }}</p>
    </div>
@endforeach

{{ $posts->links() }}



Bu kod, başlık ve tarihe göre sıralama linklerini gösterir. Kullanıcı, bu linklere tıklayarak verileri sıralayabilir.

Laravel’de Pagination ve Sıralamanın Avantajları

  • Kullanıcı Deneyimi: Pagination ve sıralama, kullanıcıların verilerle etkileşimini kolaylaştırır.
  • Performans: Büyük veri setlerini sayfalara bölerek performansı artırır.
  • Esneklik: Farklı sıralama kriterleri ve yönleri ile kullanıcıların ihtiyaçlarına uygun bir yapı sunar.


Laravel’de pagination ve sıralama işlemleri, büyük veri setlerini kullanıcıya daha kolay bir şekilde sunmanın en etkili yollarından biridir. Eğer kullanıcı deneyimini iyileştirmek ve performansı artırmak istiyorsanız, bu özellikleri mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Social Media Login Entegrasyonu konusuna değineceğim. Görüşmek üzere!


Tags: #Laravel #Pagination #Laravel Pagination #Sıralama #Laravel Sorting #Laravel Query Builder #Eloquent Pagination #Laravel Paginator #Laravel Simple Pagination #Laravel Custom Pagination #Laravel Pagination Styling #Laravel Tailwind Pagination #Laravel Bootstrap Pagination #Laravel Infinite Scroll #Laravel API Pagination #Laravel Cursor Pagination #Laravel Paginate Method #Laravel OrderBy #Laravel Sortable #Laravel Column Sorting #Laravel Filter and Sort #Laravel DataTables #Laravel Search and Pagination #Laravel Pagination Performance #Laravel Chunking #Laravel Large Data Pagination #Laravel Frontend Pagination #Laravel Vue.js Pagination #Laravel Livewire Pagination #Laravel 12x
Share:
M

Written by

Mahmut Sarıkaya

Software Developer

Comments

No comments yet. Be the first to share your thoughts!

Leave a Comment

6 + 6 =