Routing در لاراول
routin(ادرس دهی) در لاراول یک مبحث فوق العاده مهم می باشد زیرا تمام درخواست های کاربران برای جابه جایی و یافتن صفحات وبسیایت به وسیله این مبحث کنترل می شود.
در لاراول، همه درخواستها با کمک روتها ترسیم میشوند. همه روتها در پوشه route ساخته میشوند. برای وب اپلیکیشنها شما میتوانید روتهای اپلیکیشن خود را در فایل web.php تعریف کنید و همچنین زمانی که از api استفاده میکنید میتوانید روتهای خود را در فایل api.php تعریف کنید.
;Route::MehhodName(‘/request’,’Controller Or Closure’)
تعریف کردن روتها در لاراول خیلی ساده است برای ایجاد یک روت جدید شما باید از فساد Route:: استفاده کنید و سپس نوع درخواستی را که میخواهید به آن روت اختصاص دهید، مشخص کنید. پس از آن تابعی که درخواست مورد نظر شما را اجرا میکند، قرار میگیرد.
متدهایی که می توانید در بخش MethodName قرار بدهید به شرح زیر هستند:
-
get (دریافت درخواست هایی از نوع متد get که اکثر در خواست های کاربران به این شکل می باشد)
-
post (دریافت درخواست هایی از نوع متد post که معمولا از سمت فرم ها ارسال می شود)
-
any (جهت دریافت در خواست هایی که چه از نوع get و چه از نوع post هستند)
-
view (یاز شما را برای مسیرهایی که فقط نیاز دارند یک
view
را نمایش دهند برطرف میکند) -
Redirect (نیاز شما را برای هدایت کردن به مسیر مورد نظر برطرف میکند)
-
group (جهت دسته بندی کردن روت های خود که از یک مسیر می آیند میتوانید از این متد استفاده نمایید)
-
match (جهت معرفی Route برای انواع مشخصی از درخواستها میتوانید از این متد استفاده نمایید)
-
delete (جهت حذف اطلاعات ارسالی توسط فرم می توانید از این متد استفاده نمایید)
-
put(جهت قرار دادن یک مسیر دلخواه برای درخواست های خود از این متد استفاده می شود)
;Route :: get( ‘/$url< dir=”ltr”span class=”hljs-string”>’ ‘ ‘ $action‘ )
;Route :: post( ‘/$url‘ ‘ ‘$action‘ )
;Route :: any( ‘/$url‘ ‘ ‘ $action‘ )
;Route :: view( ‘/$url‘ ‘ ‘nameyourpage’ )
;Route :: redirect( ‘/$url‘ ‘ ‘ yourAdress’ )
;Route :: delete( ‘/$url‘ ‘ ‘$action‘ )
Route::group([‘prefix’ =>’Admin’], function()//=====>tamae route hayie ke pishvand Admin darand
}
}()Route::get(‘/index’, function
code //
{;(
()Route::get(‘user/profile’, function
}
code //
{;(
{
;Route :: patch( ‘/$url‘ ‘ ‘$action‘ )
;(‘Route :: delete ‘/$url‘ ‘ ‘$action
استفاده از پارامترها در روتهای لاراول
-
نمونه ساده یک Route به همراه پارامتر
Route::get(‘about/{id}’, function($id)
}
; return ‘User ‘.$id
;({
-
پارامتر اختیاری در routing
Route::get(‘user/{string?}’, function($string = null)
}
;return $string
;({
-
پارامتر اختیاری با مقدار پیشفرض
Route::get(‘user/{string?}’, function($string= ‘John’) { return $string; });
شرط گذاری روی روت ها
ما می توانیم روی تمام درخواست ها خود در لاارول شرط قرار بدهیم بدین صورت که هر داده و درخواستی را از کاربر دریافت نکنیم و روی تمام پارامترهای خود کنترل داشته باشیم. بدین صورت که کاربر فقط بتواند پارامتر عددی یا رشته ای ارسال کند.
به عنوان مثال می خواهیم روی یک پارامتر شرط بگذاریم که فقط داده از نوع رشته را پذیرش کند و اگر داده عددی بود ان را قبول و دریافت نکند. بنابراین به صورت زیر عمل می کنیم.
Route::get(‘user/{name}’, function($name)
{
//
})->where(‘name’, ‘[A-Za-z]+’);
یا به عوان مثال برعکس این عمل میخواهیم فقط داده های عددی را پذیرا باشد که به شکل شرط خود را روی پارامتر اعمال می کنیم.
Route::get(‘user/{id}’, function($name)
}
//
;where(‘id’, ‘[0-9]+’)<-({
نامگذاری روتها در لاراول
لاراول یک روش ساده برای دسترسی ساده به روت ها در اختیار شما قرار داده است و ان روش، نام گذاری روت ها است که برای این کار کافی است از تابع name استفاده نماییم که کار نام گذاری را برای ما بسیار راحت کرده است.
;Route::post(‘/index’, ‘Mycontroller@index’)->name(‘index’)
حال ما می توانیم درون فرم خود به جای نوشتن ادرس کامل از نام route استفاده نماییم که کار بسیار اصولی تر و بهینه تر(cleancode)است.
<form action=”{{ route(‘index’) }}”</form>