Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Yalnızca PAGINATED koleksiyonuna sahip olduğunuzda tüm kayıtların toplamı nasıl hesaplanır? Hesaplamayı sayfalandırmadan ÖNCE, ancak aynı sorgudan yapın.

// Sayfalandırmayla post_view'lerin toplamı nasıl alınır?
$posts = Post::paginate(10);
// Bu sadece 1. sayfa için olacak, TÜM gönderiler için değil
$sum = $posts->sum('post_views');

// Bunu Query Builder ile yapın
$query = Post::query();
// Toplamı hesapla
$sum = $query->sum('post_views');
// Ve sonra aynı sorgudan sayfalandırmayı yapın
$posts = $query->paginate(10);
  • mgsmus bunu yanıtladı.
  • aghabalaguluzade

    $posts = Post::paginate(10);
    
    $total = $posts->total();

    ama sadece paginate() ile çalışır, simplePaginate() ve cursorPaginate() ile kullanamazsınız. Diğerleri ile alabilmeniz için ayrı bir sorgu yapmanız gerekiyor:

    $total = 0;
    
    $posts = Post::query()
        // Filtre vs varsa buraya...
        // En son:
        ->tap(function(Builder $query) use (&$total) {
            $total = $query->count();
        })
        ->simplePaginate();
    aghabalaguluzade, başlığı Sayfalandırmayla Toplamı Hesaplama (Calculate Sum with Pagination) olarak değiştirdi.

    aghabalaguluzade

    $posts = Post::paginate(10);
    
    $total = $posts->total();

    ama sadece paginate() ile çalışır, simplePaginate() ve cursorPaginate() ile kullanamazsınız. Diğerleri ile alabilmeniz için ayrı bir sorgu yapmanız gerekiyor:

    $total = 0;
    
    $posts = Post::query()
        // Filtre vs varsa buraya...
        // En son:
        ->tap(function(Builder $query) use (&$total) {
            $total = $query->count();
        })
        ->simplePaginate();