در این مقاله به بررسی پارامترهای ضرروی و اختیاری routing می پردازیم.
در فریم ورک لاراول می توان آدرس و URL ها را به صورت پارامتری تنظیم کرد. زمانی که میخواهیم به یک دسته بندی خاص و یا اطلاعات یک کاربر خاص دسترسی داشته باشیم، پارامترهای Routing کمک میکنند تا سریع تر و آسان تر به آنها دسترسی پیدا کنیم. به طور کلی در routing لاراول، دو نوع پارامتر وجود دارد که در ادامه به طور کامل آنها را بررسی میکنیم.
1. Required Parameters
پارامترهای required، پارامترهایی هستند که ما در URL وارد میکنیم. گاهی اوقات ممکن است بخواهید قسمتی از URL را بردارید و آن را تغییر دهید، این کار را میتوانید از طریق تغییر پارامتر ها در URL انجام دهید. برای مثال زمانی که میخواهید یک ایدی کاربری را از اگر بخواهید یک id کاربری را از URL بردارید.
برای درک بیشتر این پارامتر به مثال های زیر دقت کنید.
در مثال زیر از پارامترهای route استفاده نشده، به خروجی آنها توجه کنید:
<?php
Route::get(‘/’, function()
{
return “This is a home page”;
}
);
Route::get(‘/about’, function()
{
return “This is a about us page”;
}
);
Route::get(‘/contact’, function()
{
return “This is a contact us page”;
}
);
خروجی :
اگر آدرس URL را “localhost/laravelproject/public/” وارد کنیم:
اگر آدرس URL را “localhost/laravelproject/public/about” وارد کنیم:
اگر آدرس URL را “localhost/laravelproject/public/contact” وارد کنیم:
اکنون در مثال زیر از پارامترهای route استفاده شده است، به خروجی آنها توجه کنید:
Route::get(‘/post/{id}’, function($id)
{
return “id number is : “. $id;
}
);
پارامترهای route درون براکت ها {} قرار دارند و پارامترها باید شامل حروف الفبا باشند. نباید دارای کاراکتر ‘-‘ استفاده شود. اما میتوانید به جای کاراکتر ‘-‘ ، از ‘_’ استفاده کنید.
خروجی :
اکنون در مثال زیر از چندین پارامتر route استفاده میکنیم، به خروجی آنها توجه کنید:
//We can also pass the multiple parameters.
Route::get(‘/post/{id}/{name}’, function($id,$name)
{
return “id number is : “. $id .” “.$name;
}
);
خروجی :
2. Optional Parameters
فرض کنید که در موقعیتی قرار دارید که می خواهید پارامتر route را مشخص کنید. در چنین مواقعی می توانید پارامتر route را از نوع Optional یا اختیاری انتخاب و تنظیم کنید. برای ایجاد پارامتر Optional ، فقط کافیست عملگر ‘؟’ را بعد از اسم پارامتر قرار دهید.
به مثال های زیر توجه کنید:
Route::get(‘user/{name?}’, function ($name=null) {
return $name;
});
زمانی که به URL هیچ مقداری داده نمیشود، خروجی به شکل زیر است:
زمانی که ‘akshita’ را در URL قرار میدهیم، خروجی به صورت زیر خواهد بود: