استخدام Route Model Binding لكتابة Controllers أنظف

تعلّم كيف يمكن لـ Laravel أن يحقن نماذجك تلقائياً داخل المسارات دون الحاجة لكتابة استعلامات يدوية.

دقيقة قراءةلارافيلRead in English

بدلاً من جلب النماذج يدوياً داخل الـ controller، يمكن لـ Laravel القيام بذلك تلقائياً:

قبل (استعلام يدوي)

public function show($id)
{
 $post = Post::findOrFail($id);
 return view('posts.show', compact('post'));
}

بعد (Route Model Binding)

public function show(Post $post)
{
 return view('posts.show', compact('post')); 
}

يقوم Laravel تلقائياً بالعثور على الـ Post بواسطة الـ ID ويعيد 404 إذا لم يتم العثور عليه. يمكنك أيضاً استخدام مفاتيح مخصّصة:

// داخل الموديل 
public function getRouteKeyName()
{ 
return 'slug'; 
}

الآن المسار /posts/my-post-slug سيتم ربطه تلقائياً باستخدام عمود slug.

كل المقالات

تابع القراءة