Від автора: у цій статті ми розберемо, як працює в Laravel редирект. Зокрема, мова йде про іменованих редиректах.
Редиректи на іменовані маршрути
Іменований маршрут використовується для вказівки конкретного імені маршруту. Ім’я може бути призначено за допомогою ключа масиву «as».
Route::get(‘user/profile’, [‘as’ => ‘profile’, function () {
//
}]);
Примітка. Ми поставили ім’я «profile» для маршруту «user/profile».
Приклад
Крок 1 — Створіть виставу під назвою test.php збережіть його у файлі resources/views/test.php.
Example of Redirecting to Named Routes
Крок 2 — В route.php ми встановили маршрут для файлу test.php. Ми перейменували його в «testing» . Ми також створили ще один маршрут «redirect», який перенаправляє маршрут до «testing» на вказаний маршрут. app/Http/routes.php
Route::get(‘/test’, [‘as’=>’testing’,function(){
return view(‘test2’);
}]);
Route::get(‘redirect’,function(){
return redirect()->route(‘testing’);
});
Крок 3. Перейдіть за наступним URL-адресою, щоб перевірити приклад іменованого маршруту. http://localhost:8000/redirect
Крок 4 — Після виконання вищевказаного URL-адреси ви будете перенаправлені на http://localhost:8000/test, оскільки у нас задано редирект на маршрут “testing”.
Крок 5 — Після успішного виконання URL-адреси ви отримаєте наступний результат:
Редірект на дії контролера
Ми можемо передавати запит користувача не тільки на визначений маршрут, але і на дії контролера. Нам потрібно просто передати контролер і ім’я дії метод action, як показано в наступному прикладі. Якщо вам потрібно передати також параметр, ви можете передати його в якості другого аргументу методу action.
return redirect()->action(‘NameOfController@methodName’,[parameters]);
Приклад
Крок 1 — Виконайте наступну команду для створення контролера RedirectController.
php artisan make:controller RedirectController –plain
Крок 2 — Після виконання команди ви отримаєте наступний результат:
Крок 3 — Скопіюйте наступний код у файл app/Http/Controllers/RedirectController.php.
Крок 4 — Додайте в файл app/Http/routes.php наступні рядки.
Route::get(‘rr’,’RedirectController@index’);
Route::get(‘/redirectcontroller’,function(){
return redirect()->action(‘RedirectController@index’);
});
Крок 5 – Перейдіть за наступним URL-адресою. http://localhost:8000/redirectcontroller
Крок 6 Ви повинні побачити на екрані наступне: