فهرست:

در لاراول روت نامگذاری شده برای دادن نام خاص به یک روت استفاده می شود. نام را می توان با استفاده از کلید آرایه “as” اختصاص داد.

Route::get('user/profile', ['as' => 'profile', function () {
   //
}]);

نکته: در اینجا، ما مشخصات profile را به یک user/profile مسیر داده ایم.

Redirecting به روت های نام گذاری شده

برای درک بیشتر در مورد Redirect به روت های نام گذاری شده ، مثال زیر را مشاهده کنید. فایل resources/views/test.php را با متحویات زیر ایجاد کنید.

resources/views/test.php
<html>
   <body>
      <h1>Example of Redirecting to Named Routes</h1>
   </body>
</html>

در فایل route.php روت را برای فایل test.php تنظیم و نام آن را به testing تغییر دادیم. همچنین در یک روت redirect را به روتی که تغییر نام داده ایم انجام می دهیم تابرای در خواست مورد نظر به روت نامگذاری شده هدایت شویم.

app/Http/routes.php
Route::get('/test', ['as'=>'testing',function() {
   return view('test');
}]);

Route::get('redirect',function() {
   return redirect()->route('testing');
});

حال به آدرس زیر مراجعه کنید.

http://localhost:8000/redirect

پس از اجرای URL بالا ، شما به http://localhost:8000/test به روت نام گذاری شده هدایت می شوید و خروجی مرورگر شما باید مطابق زیر باشد.

Example of Redirecting to Named Routes

Redirecting to Controller Actions

علاوه بر ریدایرکت به روت های نام گذاری شده می توانیم همانند مثال زیر برای action کنترلرها نیز ریدایرکت اعمال کنیم، در این روش چنانچه بخواهیم یک پارامتر را نیز منتقل کنیم می توانیم آن را به عنوان دومین آرگومان متد ارسال نماییم.

return redirect()->action('NameOfController@methodName',[parameters]);

برای درک بهتر توضیحات بالا را در قالب یک مثال کاربردی بررسی می کنیم، با خط فرمان زیر یک کنترلر به نام RedirectController ایجاد می کنیم.

php artisan make:controller RedirectController --plain

بعد از اجرای دستور بالا فایل RedirectController.php ایجاد می شود آن را بصورت زیر ویرایش نمایید.

app/Http/Controllers/RedirectController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class RedirectController extends Controller {
   public function index() {
      echo "Redirecting to controller's action.";
   }
}

سپس فایل routes.php بصورت زیر تغییر دهید.

app/Http/routes.php
Route::get('rr','RedirectController@index');
Route::get('/redirectcontroller',function() {
   return redirect()->action('RedirectController@index');
});

حال آدرس زیر را اجرا نمایید.

http://localhost:8000/redirectcontroller

خروجی مرورگر شما باید بصورت زیر باشد.

Redirecting to controller's action.