شرح صفوف ومحتوى الفقرة
لاكتشاف استعلامات N+1 غير المقصودة مبكراً قبل وصول الكود إلى بيئة الإنتاج، يتيح لك Laravel تعطيل التحميل الكسول كلياً عبر استدعاء Model::preventLazyLoading داخل المزود AppServiceProvider. تمرير شرط عدم كون البيئة إنتاجية يطلق استثناءً واضحاً ينبه المبرمج فوراً أثناء التطوير مع الحفاظ على استمرار عمل الموقع في الإنتاج.
- منع التحميل الكسول (preventLazyLoading): يأمر Eloquent بإطلاق استثناء تنبيهي فور محاولة قراءة علاقة لم يتم تحميلها مسبقاً.
- الربط ببيئة التطوير (Non-Production Guard): تفعيله في غير بيئة الإنتاج يكشف أخطاء الأداء للمطور فوراً دون تعطيل الزوار الفعليين.
- الوضع الصارم الشامل (Model::shouldBeStrict): يفعل منع التحميل الكسول ويمنع تجاهل الحقول غير القابلة للتعبئة بصمت.
PHP
use Illuminate\Database\Eloquent\Model;
public function boot(): void
{
Model::preventLazyLoading(
! $this->app->isProduction()
);
}