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

Scoped Bindings and Missing Models الربط المقيد ومعالجة السجل المفقود

حقن نماذج Eloquent تلقائياً في المسارات بالمعرف أو السلج وتقسيم النتائج الكبيرة إلى صفحات عبر paginate وروابط links.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

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

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

في المسارات المتداخلة مثل /users/{user}/posts/{post}، يقيد Laravel النموذج الثاني تلقائياً عند استخدام عمود مخصص، أو عبر إلحاق دالة scopeBindings بالمسار لضمان ملكية المستخدم الأب لذلك المقال تحديداً. كما يمكنك تخصيص سلوك التطبيق عند غياب السجل عبر دالة missing لتحويل الزائر بدلاً من صفحة 404.

  • حماية التبعية (scopeBindings): تتحقق برمجياً من أن السجل الابن في الرابط يتبع فعلياً للسجل الأب المذكور قبله.
  • شمل المحذوفات ناعماً (Route withTrashed): ألحق withTrashed بالمسار للسماح بجلب السجلات المؤرشفة في مسارات لوحة الإدارة.
  • معالجة السجل المفقود (missing Fallback): توجه الزائر إلى صفحة بديلة بلطف عند طلب سجل لم يعد موجوداً.
PHP
Route::get('/users/{user}/posts/{post}', function (User $user,
    return view('posts.show', compact('user', 'post'));
})->scopeBindings()
  ->missing(fn () => to_route('posts.index'));