لارافيل درس تعليمي

Eloquent Scopes في Laravel: تنظيم الاستعلامات وكتابة كود أنضف

Mohamed Shahin
Mohamed Shahin
Jan 09, 2026
2 دقيقة قراءة

Key Takeaways

  • Eloquent Scopes في Laravel بتساعدك تكتب استعلامات أنضف، قابلة لإعادة الاستخدام، وبتحافظ على الكود من التكرار داخل الكنترولرز والخدمات.
تحديث

تمت إضافة شرح عملي لـ Eloquent Scopes مع أمثلة واضحة.

Eloquent Scopes من أقوى الأدوات اللي Laravel بيقدمها لتنظيم الاستعلامات وكتابة كود قابل للصيانة على المدى الطويل.

بدل ما تكرر نفس شروط الاستعلام في أكتر من مكان، Scopes بتخليك تحط المنطق مرة واحدة داخل الـ Model وتستخدمه في أي مكان بسهولة.

ما هي Eloquent Scopes؟ #

Eloquent Scopes هي طرق (Methods) داخل الـ Model بتضيف شروط جاهزة على الاستعلامات.

Laravel بيدعم نوعين:

  • Local Scopes
  • Global Scopes

Local Scopes #

Local Scopes بتستخدم لما يكون عندك شروط استعلام بتتكرر كتير.

مثال #

class Post extends Model
{
    public function scopePublished($query)
    {
        return $query->where('published', true);
    }

    public function scopeLatestPublished($query)
    {
        return $query->published()
                     ->orderByDesc('published_at');
    }
}


الاستخدام


Post::published()->get();

Post::latestPublished()->paginate(10);



الكود بقى:

أوضح

أقصر

أسهل في القراءة

ليه Scopes مهمة؟

بدون Scopes:

الاستعلامات بتتكرر

الكنترولرز بتبقى مليانة منطق

التعديل بيبقى مرهق

Scopes بتحط منطق الاستعلام في مكانه الطبيعي: الـ Model.

Global Scopes

Global Scopes بتتطبق تلقائيًا على كل الاستعلامات الخاصة بالـ Model.

استخداماتها الشائعة

Multi-Tenancy

إظهار البيانات النشطة فقط

تطبيق قيود أمنية افتراضية

class ActiveScope implements Scope
{
    public function apply(Builder $builder, Model $model)
    {
        $builder->where('is_active', true);
    }
}



أفضل الممارسات

خلي أسماء Scopes واضحة ومعبرة

بلاش تحط منطق معقد جوه Scope

استخدم Scopes بدل تكرار where

دمج Scopes بيدي مرونة عالية

الخلاصة

Eloquent Scopes مش مجرد اختصار للكود
دي أداة أساسية لبناء تطبيق Laravel نظيف وقابل للتوسع.

ميزة صغيرة… تأثيرها كبير 🔥


Want more content like this?

Explore more tutorials in the لارافيل section.

Explore لارافيل

You might also like