Laravel Scope ile model sorgusuna yeni metod eklenir. Böylelikle sürekli aynı sorgu için metod yazmanıza gerek kalmaz. Örnek olarak aktif üyelere çekmek istediğiniz de sürekli …->where(‘status’, ‘1’); diye ekleme yapmanız gerekiyor. Ancak scope tanımlayarak bu işlemi basit şekilde gerçekleştirebilirsiniz.
class Post extends Model { public function scopeActive($query) { return $query->where('status', 1); } }
Sorgu yapacak metod içine;
$activePosts = Post::active()->get();
Daha kullanışlı hale getirmek için parametre ile dinamik scope oluşturalım çevirelim;
class Post extends Model { public function scopeActive($query, $value) { return $query->where('status', $value); } }
Aktif ve aktif olmayanları çekme;
// Get active posts $activePosts = Post::active(true)->get(); // Get not active posts $notActivePosts = Post::active(false)->get();
İlk Yorumu Siz Yapın