انواع route ها و وظایف آنها در لاراول

چاپ

همان طور که متوجه شده اید، برای تعریف routeها از دستور Route::get استفاده می کنیم. این دستور به لاراول می گوید که اگر یک درخواست http که از اکشن GET استفاده می کند ایجاد شد از مسیرهای مشخص شده استفاده کن.

اما اینجا یک سوال پیش می آید: اگر در درخواست از اکشن POST استفاده شود و یا از درخواست های جاوااسکریپتی مثل PUT یا DELETE استفاده شود باید چکار کنیم؟ 

در پاسخ باید گفت که برای این نوع درخواست ها باید از متدهای دیگری استفاده کنیم. درست مثل مثال 3.3 در زیر:

(مثال 3.3)

Route::get('/', function () {
  return 'Hello, World!';
});
Route::post('/', function () {});
Route::put('/', function () {});
Route::delete('/', function () {});
Route::any('/', function () {});
Route::match(['get', 'post'], '/', function () {});

 


استفاده از routeها در لاراول

همان طور که احتمالا حدس زده اید، استفاده از یک کلوژر در داخل routeها تنها راه استفاده از یک route نیست. کلوژرها سریع و ساده هستند اما همان طور که اپلیکیشن ما بزرگ و بزرگتر می شود، قرار دادن routeها در داخل یک فایل، ناخوشایند به نظر می رسد. همچنین اپلیکیشن هایی که از کلوژها استفاده می کنند نمی توانند از ذخیره سازی یا همان cache کردن routeها استفاده کنند. استفاده از cache مهم است زیرا می تواند باعث صرفه جویی هزاران میلی ثانیه برای هر درخواست شود. 

بنابراین یک گزینه ی دیگر پیش روی داریم و آن این است که نام یک کنترلر و متد را بعنوان یک رشته به جای کلوژر قرار دهیم. به مثال 3.4 در زیر توجه کنید: 

Route::get('/', 'WelcomeController@index');

 دستور بالا به لاراول اعلام می کند که درخواست ها را به متد ()index که در کنترلر App\Http\Controllers\WelcomeController قرار دارد ارسال کند. این متد همان کار کلوژر را انجام می دهد.