🧭 Route Parameters در Laravel — راهنمای کامل
📌 Route Parameter چیست؟
Route Parameter به ما اجازه میده تا قسمتهایی از URL رو به صورت متغیر تعریف کنیم و اونها رو داخل کنترلر یا تابع مسیریابی دریافت کنیم.
🎯 مثال ساده:
حالا وقتی وارد آدرس
/user/42بشی، خروجی میشه:
🧩 پارامترهای اجباری
هر چیزی داخل {} بهعنوان پارامتر اجباری شناخته میشه.
🛡️ محدود کردن مقدار پارامتر (Regular Expression)
فقط اعدادی مثل
/user/123معتبر هستن.
🧵 چند پارامتر
🧊 پارامترهای اختیاری (Optional Parameters)
حالا هم
/user/Aliکار میکنه و هم/user.
💡 نکته:
اگر پارامتر اختیاری باشه، باید مقدار پیشفرض براش در تابع مشخص کنی.
🧠 استفاده در Controller
1. تعریف Route:
2. متد در کنترلر:
📦 ارسال پارامتر با نام Route
اگر برای route اسم بذاری، میتونی با route() پارامتر رو هم بفرستی:
🚧 whereMultiple – محدودیت روی چند پارامتر:
🛠️ Route Model Binding (پیشرفته)
لاراول بهت اجازه میده بهجای دریافت ID، مستقیم مدل رو بگیری:
اگر
userبا ID داده شده پیدا نشه، 404 میفرسته.
✨ جمعبندی
| نوع پارامتر | مثال | توضیح |
|---|---|---|
| اجباری | /user/{id} | باید مقدار داشته باشه |
| اختیاری | /user/{name?} | مقدار پیشفرض میگیره |
| محدود شده | ->where('id', '[0-9]+') | regex روی پارامتر |
| چندتایی | /cat/{id}/post/{slug} | ترکیب پارامترها |
| مدل بیندینگ | {user} → User $user | دریافت مستقیم مدل |