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.