Laravel ile Hangi Kategoride Kaç Tane Yazı Var Bulma
Selam 👋
Hadi hangi kategoride kaç tane yazı olduğunu Laravel EloquentORM ile bulalım
Kaynaklar:
Kategoriler blog yazılarına doğal olarak category_id şeklinde bağlılar yani 'Blog BelongsTo Kategori'. (Bu nokta gerçekten çok önemli!)
Tam tersi olarak da 'Kategori Has/HasMany Blog' şeklinde yani aynı kategoriyi kullanan birde fazla yazıya sahibiz.
Bu nedenle Model dizini altında bulunan Category.php dosyamızın içine
public function blogs() { return $this->hasMany(Blog::class,'category_id'); }
şeklinde bir fonksiyon tanımlaması yapıyoruz (Blog tablosunda category_id şeklinde bir sütun olmalı ve foreignId ile bağlanmış olmak zorunda! )
ve Livewire üzerinde göstermek istediğimiz için app/Livewire dizini altında bulunan Blog.php dosyamızda render fonksiyonu içerisine
$categories = Category::withCount('blogs')->get();
şeklinde categories değişkenini tanımlıyoruz burada önemli olan Category modeli altında tanımlanan 'blogs' fonksiyonu ile 'withCount' fonksiyonu içerisinde tanımlanan değişkenin aynı olması lazım.
Bu noktada Livewire olması kesinlikle zorunlu değil, normal blade return view içerisinde de gönderilebilir sadece şu anki senaryoda Livewire var.
Son olarak categories değişkenini return view ile livewire üzerinde gönderiyoruz ve livewire component üzerinde @foreach ile gösterdiğimiz kategorilerimizin hemen yanına
{{$category->blogs_count}}
ile sahip oldukları yazıların adetini gösteriyoruz. Böylelikle artık hangi kategoride kaç adet yazı var bulmuş olduk.
Gerçekten çok basit bir işlem ve kullanıcı deneyimini olumlu yönde etkileyen bir unsur.
Okuduğunuz ve web sitemi ziyaret ettiğiniz için teşekkürler. Umarım yararlı olmuştur.