От автора: в этой статье мы разберем, как работает в Laravel редирект. В частности, речь идет об именованных редиректах.
Редиректы на именованные маршруты
Именованный маршрут используется для указания конкретного имени маршрута. Имя может быть назначено с помощью ключа массива «as».
1 2 3 |
Route::get('user/profile', ['as' => 'profile', function () { // }]); |
Примечание. Мы задали имя «profile» для маршрута «user/profile».
Пример
Шаг 1 — Создайте представление под названием test.php и сохраните его в файле resources/views/test.php.
1 2 3 4 5 |
<html> <body> <h1>Example of Redirecting to Named Routes</h1> </body> </html> |
Шаг 2 — В route.php мы установили маршрут для файла test.php. Мы переименовали его в «testing» . Мы также создали еще один маршрут «redirect», который перенаправляет маршрут к «testing» на указанный маршрут. app/Http/routes.php
1 2 3 4 5 6 |
Route::get('/test', ['as'=>'testing',function(){ return view('test2'); }]); Route::get('redirect',function(){ return redirect()->route('testing'); }); |
Шаг 3. Перейдите по следующему URL-адресу, чтобы проверить пример именованного маршрута. //localhost:8000/redirect
Шаг 4 — После выполнения вышеуказанного URL-адреса вы будете перенаправлены на //localhost:8000/test, поскольку у нас задан редирект на маршрут “testing”.
Шаг 5 — После успешного выполнения URL-адреса вы получите следующий результат:
Редирект на действия контроллера
Мы можем перенаправлять запрос пользователя не только на именованный маршрут, но и на действия контроллера. Нам нужно просто передать контроллер и имя действия в метод action, как показано в следующем примере. Если вам нужно передать также параметр, вы можете передать его в качестве второго аргумента метода action.
1 |
return redirect()->action(‘NameOfController@methodName’,[parameters]); |
Пример
Шаг 1 — Выполните следующую команду для создания контроллера RedirectController.
1 |
php artisan make:controller RedirectController --plain |
Шаг 2 — После выполнения команды вы получите следующий результат:
Шаг 3 — Скопируйте следующий код в файл app/Http/Controllers/RedirectController.php.
1 2 3 4 5 6 7 8 9 10 11 |
<?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."; } } |
Шаг 4 — Добавьте в файл app/Http/routes.php следующие строки.
1 2 3 4 |
Route::get('rr','RedirectController@index'); Route::get('/redirectcontroller',function(){ return redirect()->action('RedirectController@index'); }); |
Шаг 5 – Перейдите по следующему URL-адресу. //localhost:8000/redirectcontroller
Шаг 6 – Вы должны увидеть на экране следующее:
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.