یکی از مهم ترین ویژگی و قابلیت ها در فریمورک لاراول، نامگذاری route هاست. هنگامی که شما بخواهید یک URL ایجاد کنید و یا route ها را به route های خاص تغییر دهید، دسترسی شما را به route ها آسان تر میکند. به طور خلاصه ، میتوان گفت که نامگذاری route ها بهترین راه برای ارائه و دسترسی به یک route است. به کمک این ویژگی به راحتی میتوان به هر route یک نام مستعار اختصاص داد.
Route ها در لاراول چگونه نامگذاری می شوند؟
به وسیله chain یا زنجیر کردن نام متد به route تعریف شده، میتوان یک name برای route تعریف کرد:
Route::get(‘student/details’, function()
{
//
}) -> name(‘student_details’);
همچنین میتوان برای اقدامات کنترلرها (controller actions) ، نیز یک route نامگذاری کرد:
Route::get(‘student/details’, ‘studentcontroller@showdetails’) -> name(‘student_details’);
ایجاد URL برای named route ها
هنگامی که شما یک نام به route اختصاص می دهید، میتوانید هنگام تولید URL ها یا مسیردهی Route از طریق یک تابع جهانی و گلوبال از آن اسم استفاده کنید:
//Generating URLs
$url= route(‘student_details’);
//Generating Redirects…
return redirect() -> route(‘student_details’);
گاهی اوقات ممکن است پارامترهای زیادی در URL داشته باشیم، در چنین مواقع ایی میتوانیم یک اسم کوتاه به URL ها بدهیم. به مثال زیر توجه کنید، در اینجا ما از یک آرایه استفاده کرده ایم که همه چیز را پیچیده و نامفهوم می کند و به عنوان دومین پارامتر در تابع ()get ظاهر میشود.
Route::get(‘student/details/example’,array
(‘as’=>’student.details’,function()
{
$url=route(‘student.details’);
return “The url is : ” .$url;
}));
خروجی :
همچنین می توانیم از طریق پنجره Git bash اسم route را چک کنیم. مراحل آن به صورت زیر است:
گام اول :
دانلود ترمینال git bash با توجه به سیستم عاملی که از آن استفاده میکنید.
گام دوم :
- پس از نصب و راه اندازی، پنجره git bash را باز کنید.
گام سوم :
در پنجره git bash، وارد پوشه پروژه مورد نظر شوید و سپس دستور زیر را وارد کنید و اینتر بزنید:
$ php artisan route:list
خروجی شما به صورت زیر خواهد بود:
خروجی بالا نشان میدهد که نام آدرس اینترنتی “student/details/example” ، با student.details مطابقت دارد.
نکته:
یکی از مزیت های نامگذاری route ها این است که اگر ما موقعیت و لوکیشن route را تغییر دهیم، همچنان لینک کار خواهد کرد. بنابراین می توانیم بگوییم این کار برای تغییر URL های پویا، نیز سودمند است.
پارامترها در route های نامگذاری شده
هنگام تعریف پارامتر برای route ها، نیز میتوان از named route استفاده کرد. پارامترها میتوانند به عنوان دومین آرگومان به تابع route منتقل شوند و به طور خودکار در URL درست قرار میگیرند:
Route::get(‘user/{id}/profile’,function($id)
{
$url=route(‘profile’,[‘id’=>100]);
return $url;
})->name(‘profile’);
خروجی :
پیمایش از یک route به دیگر named route های استفاده شده
با استفاده از named routes یا قابلیت نامگذاری route، از یک route به route دیگر پیمایش کرد.
گام اول :
با استفاده از دستورات زیر، در فایل web.php یک route تعریف کنید:
Route::Get(‘/’,function()
{
return view(‘student’);
});
Route::get(‘student/details’,function()
{
$url=route(‘student.details’);
return $url;
})->name(‘student.details’);
گام دوم :
به پوشه سورس ها بروید و روی views folder کلیک کنید.
گام سوم :
یک فایل جدید ایجاد کنید و نام آن را student.blade.php بگذارید.
<a href=”{{ route(‘student.details’) }}”>Student</a>
کد بالا، از صفحه student به route ی که نام آن student.details است، پیمایش میکند و خروجی آن به صورت زیر است: