انتقل إلى محتوى الدرس

Reusable Local Query Scopes نطاقات الاستعلام المحلية Scopes

تحويل أنواع الخصائص عبر دالة casts وبناء المسترجعات والمعدلات ونطاقات الاستعلام وتوليد البيانات الاختبارية بالمصانع Factories.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تسمح لك نطاقات الاستعلام المحلية بتغليف شروط التصفية والترتيب المتكررة داخل دوال معبرة وقابلة لإعادة الاستخدام مباشرة داخل كلاس النموذج. عبر بدء اسم الدالة بالبادئة scope مثل scopeActive، يمكنك استدعاء دالة active بسلاسة في أي سلسلة استعلام دون تكرار الشروط.

  • اصطلاح البادئة (scope Prefix): عرّف الدالة باسم scopePublished داخل النموذج واستدعها بصيغة Post::published في الاستعلام.
  • النطاقات الديناميكية (Dynamic Scopes): استقبل معاملات إضافية بعد معامل كائن الباني لبناء فلاتر مرنة قابلة للتخصيص.
  • التسلسل السلس (Fluent Chaining): ادمج عدة نطاقات محلية معاً في سلسلة استعلام واحدة واضحة وسهلة القراءة.
PHP
use Illuminate\Database\Eloquent\Builder;

public function scopeActive(Builder $query): void
{
    $query->where('is_active', true);
}

$posts = Post::active()->latest()->get();