Laravel Route

Routing یا مسیر دهی در لاراول

Routing یا مسیر دهی در لاراول

در این مقاله به بررسی و آموزش Route ها در لاراول میپردازیم.

Routing در بحث لاراول، یکی از مفاهیم اساسی و مهم محسوب میشود. عملکرد و وظیفه اصلی Route ها، هدایت و مسیردهی تمام request ها و درخواست های برنامه به یک کنترل کننده مناسب است.

Route فایل های پیش فرض

تمام route های مربوط به لاراول، به صورت پیشفرض درون فایل های موجود در دایرکتوری routes تعریف شده اند.

همزمان با ایجاد یک پروژه، دایرکتوری های Route نیز در آن پروژه ایجاد میشوند. در دایرکتوری route/web.php مجموعه ایی از فایل های route، جهت برقراری تعام و ارتباط در وب سایت تعریف شده است.

route های موجود در web.php به گروهی از میان افزار های تحت وب اختصاص یافته تا ویژگی و قابلیت هایی مثل وضعیت نشست یا session و حفاظت CSRF را فراهم کنند.

روت های تعریف شده در routes/api.php ، نیز به گروه های میان افزاری API، اختصاص داده شده اند که تاثیر زیادی در وضعیت آنها ندارند.

در اینجا ما عملیات روتینگ را با تعریف routes در فایل routes/web.api شروع میکنیم. برای دسترسی به روت هایی که در routes/web.php تعریف شده اند، باید آدرس URL آن در مرورگر وارد شود.

برای بهتر متوجه شدن مطالب بالا به مثال زیر توجه کنید:

تعریف فایل های route پیش فرض

<?php

Route::get(‘/’, function ()

{

return view (‘welcome’);

});

 

در قطعه کد بالا، route کلاسی است که متد استاتیک ()get را تعریف میکند. متد ()get شامل پارامترهای ‘/’ و ()function بسته مباشد. ‘/’ یک دایرکتوری روت تعریف میکند و ()function برای متد ()get عملکرد تعریف میکند.

در route بالا آدرس URL ، ‘/’; است بنابراین آدرسURL

localhost/laravelproject/public

در مرورگر وب وارد شده است.

خروجی :

خروجی فایل های route

view(‘welcome’) به عنوان یک متد برگردانده شده است پس خروجی بالا نمایی از خوش آمد گویی لاراول را نمایش میدهد.

در این مثال از یک URL دیگر استفاده میکنیم:

<?php

Route::get(‘/example’, function ()

{

return “Hello javaTpoint”;

});

 

در قطعه کد بالا، route در آدرس ‘/example’ تعریف شده، بنابراین لازم است که آدرس “localhost/laravelproject/public/example“ در مرورگر وب وارد شود.

خروجی :

خروجی فایل های route

حافظت CSRF در لاراول

فرم های html که به پست ها اشاره میکنند و Route های تعریف شده در فایل های route وب را اضافه یا حذف میکنند، باید دارای فیلد توکن یا رمز CSRF باشند.

اگر فیلد CSRF توکن نداشته نباشد، در نتیجه درخواست رد میشود.

<form method=”POST” action=”/profile”>

@csrf

</form>

 

روتر، route هایی را تعریف میکند که بتواند به افعال http زیر پاسخ بدهد:

Route::get($uri, $callback);

Route::post($uri, $callback);

Route::put($uri, $callback);

Route::patch($uri, $callback);

Route::delete($uri, $callback);

Route::options($uri, $callback);

گاهی اوقات ممکن است وضعیتی رخ بدهد که نیاز به ثبت یک روتر باشد تا به افعال http چندگانه پاسخ بدهد. این کار را میتوان با استفاده از متد ()match انجام داد.

گاهی اوقات هم ممکن است بخواهید یک node ثبت کنید که بتواند به تمام افعال http پاسخ بدهد. بنابراین از متد ()any استفاده می شود.

Route::match([‘get’, ‘post’], ‘/’, function () {

//

});

Route::any(‘/’, function ()

{

//

})

 

دو متد رایج route در لاراول

Redirect () method

متد ()Redirect برای هدایت کردن یک URL به یک URL دیگر است. این متد یک راه راحت و سریع تر برای حرکت از یک URL به یک URL دیگر فراهم میکند. با کمک این متد، دیگر نیازی به تعریف کامل route نیست.

به دو روش میتوان از متد ()redirect استفاده کرد:

روش اول: فراخوانی متد ()redirect در متد ()get

<?php

Route::get(‘hello’, function () {

return redirect(‘/’);

})

 

روش دوم: دسترسی مستقیم به متد ()redirect

<?php

Route::redirect(‘hello’,’/’);

 

در قطعه کد بالا هر دو Route ها از hello به دایرکتوری روت یعنی ‘/’ مسیردهی و هدایت شده اند.

View () method

متد ()View برای برگرداندن یک نما از URL دیگر است.

<?php

Route::get(‘/’, function () {

return view(‘welcome’);

});

<?php

Route::view(‘/’,’welcome’);

 

 

بستن