TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #119 769
فصل چهار - مدل‌ها و Eloquent ORM

بخش دهم - Route Model Binding


‏Route Model Binding به ما اجازه می‌دهد تا به صورت مستقیم و خودکار مدل‌های لاراول را از URL به دست آوریم و در کنترلر استفاده کنیم. به عنوان مثال، اگر یک Post داریم و بخواهیم یک پست خاص را با استفاده از شناسه (ID) در URL بازیابی کنیم، معمولاً بدون استفاده از این ویژگی کدی شبیه به زیر می‌نویسیم:
Route::get('/posts/{id}', function($id) {
$post = Post::findOrFail($id);
return view('posts.show', compact('post'));
});


اما با استفاده از Route Model Binding می‌توانیم کد را ساده‌تر کنیم:
Route::get('/posts/{post}', function(Post $post) {
return view('posts.show', compact('post'));
});


لاراول از مقدار {post} در مسیر استفاده می‌کند تا مدل Post را بر اساس مقدار (به طور پیش‌فرض id) جستجو کرده و به کنترلر ارسال کند.

نکته: این قابلیت برای انواع مدل‌ها قابل استفاده است و شما می‌توانید از Custom Key‌ها نیز استفاده کنید.

همانطور که توضیح داده شد، {post} به طور پیشفرض بر اساس فیلد id جست و جو می کند، اما میتوانید به سادگی فیلد پیشفرض را تغییر دهید:
Route::get('/posts/{post:slug}', function(Post $post) {
return view('posts.show', compact('post'));
});


در کد بالا به جای {post}، از {post:slug} استفاده شده، به این معنی که از فیلد slug برای جست و جو استفاده شود، میتوانید فیلد مورد نظر را به جای slug بنویسید.

همچنین میتوانید فیلد پیشفرض را در مدل تغییر دهید:
class Post extends Model
{
public function getRouteKeyName()
{
return 'slug';
}
}


در این صورت با نوشتن {post} به طور پیشفرض از فیلد slug برای جست و جو استفاده می شود.

🔖 #Laravel, #PHP, #لاراول, #فصل_۴

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 7
  • 👍 2
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →