Laravel - Redirecionamentos

Rota nomeada é usada para dar um nome específico a uma rota. O nome pode ser atribuído usando o“as” chave da matriz.

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

Note - Aqui, demos o nome profile para uma rota user/profile.

Redirecionando para rotas nomeadas

Exemplo

Observe o exemplo a seguir para entender mais sobre como redirecionar para rotas nomeadas -

Step 1 - Crie uma visão chamada test.php e salve-a em

resources/views/test.php.

<html>
   <body>
      <h1>Example of Redirecting to Named Routes</h1>
   </body>
</html>

Step 2 - em routes.php, nós configuramos a rota para test.phpArquivo. Nós o renomeamos paratesting. Também configuramos outra rotaredirect que irá redirecionar a solicitação para a rota nomeada testing.

app/Http/routes.php

Route::get('/test', ['as'=>'testing',function() {
   return view('test2');
}]);

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

Step 3 - Visite o seguinte URL para testar o exemplo de rota nomeada.

http://localhost:8000/redirect

Step 4 - Após a execução do URL acima, você será redirecionado para http: // localhost: 8000 / test, pois estamos redirecionando para a rota nomeada testing.

Step 5 - Após a execução bem-sucedida do URL, você receberá a seguinte saída -

Redirecionando para ações do controlador

Não apenas a rota nomeada, mas também podemos redirecionar para ações do controlador. Precisamos simplesmente passar o controlador e o nome doactionpara o método de ação conforme mostrado no exemplo a seguir. Se quiser passar um parâmetro, pode passá-lo como o segundo argumento do método de ação.

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

Exemplo

Step 1 - Execute o seguinte comando para criar um controlador chamado RedirectController.

php artisan make:controller RedirectController --plain

Step 2 - Após a execução bem-sucedida, você receberá a seguinte saída -

Step 3 - Copie o seguinte código para o arquivo

app/Http/Controllers/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.";
   }
}

Step 4 - Adicione as seguintes linhas em app/Http/routes.php.

app/Http/routes.php

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

Step 5 - Visite o seguinte URL para testar o exemplo.

http://localhost:8000/redirectcontroller

Step 6 - A saída aparecerá conforme mostrado na imagem a seguir.