
آموزش Routing در لاراول پارت 2
پارامتر ها در روت ها
در لاراول شما میتونید برای روت هاتون پارامتر ست کنید و بر اساس اون یک سری دیتا قابل تغییر دریافت کنید. برای مثال فرض کنید میخواهید یک ایدی کاربر دریافت کنید، خب نمی تونید برای هر کاربر یک روت درست کنید به جاش میاید یک روت با پارامتر درست میکنید و بر اساس اون یک سری کار ها انجام میدید، بریم یک مثال ببینینم:
1. تعریف روت با پارامتر ساده
برای ارسال یک مقدار به کنترلر یا بسته به پارامتر در همان مسیر:
{id}
نشاندهندهی یک پارامتر اجباری است.- مقدار پارامتر در URL مانند:
/user/5
ارسال میشود و مقدار5
به$id
اختصاص داده میشود.
2. تعریف پارامتر اختیاری
گاهی ممکن است بخواهید یک پارامتر اختیاری باشد. در این حالت از علامت ?
استفاده میکنید و مقدار پیشفرض تعریف میکنید:
- URL:
/user
=> خروجی:Hello, Guest
- URL:
/user/Ali
=> خروجی:Hello, Ali
3. محدود کردن مقادیر پارامتر با Regular Expression
میتوانید مقادیر مجاز پارامتر را با یک الگوی مشخص محدود کنید:
- تنها مقادیری که شامل اعداد (
0-9
) باشند پذیرفته میشوند. - اگر مقدار دیگری (مثلاً
/user/abc
) ارسال شود، خطای 404 دریافت خواهید کرد.
برای چند پارامتر هم میتوانید از آرایه استفاده کنید:
Route::get('/user/{id}/{name}', function ($id, $name) {
return "User ID: $id and Name: $name";
})->where([
'id' => '[0-9]+',
'name' => '[a-zA-Z]+'
]);
4. پارامترهای نامگذاری شده (Named Routes)
برای ارجاع به روتها با نام و ارسال پارامتر:
5. گروهبندی و استفاده از پارامترهای پیشفرض
در گروهبندی، میتوانید از پارامترهای پیشفرض استفاده کنید:
URL: /admin/user/5
6. پارامترهای مسیریابی در کنترلر
اگر از کنترلر برای هندل کردن مسیرها استفاده میکنید:
کنترلر:
7. پاسخ به پارامترهای چندگانه
میتوانید چند پارامتر را به روت ارسال کنید:
URL: /post/1/comment/42
8. استفاده از Binding سفارشی
اگر میخواهید به جای ارسال ID، مستقیماً یک مدل را دریافت کنید، میتوانید از Route Model Binding استفاده کنید:
در این حالت لاراول به صورت خودکار Post::findOrFail($id) را اجرا کرده و مدل را بازیابی میکند.
0 نظر