بدلاً من جلب النماذج يدوياً داخل الـ 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.