Neste tutorial, mostraremos como redirecionar para uma rota de um controlador Laravel. Esta é uma técnica simples, mas útil, que pode ser usada para enviar usuários para diferentes páginas em seu aplicativo.
Você precisa principalmente redirecionar a rota do método do controlador no projeto laravel. O Laravel fornece várias maneiras de retornar o redirecionamento com o nome da rota no laravel. Aqui, você verá quatro maneiras de retornar um redirecionamento para uma rota específica da função do controlador.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
use App\Http\Controllers\HomeController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('users', [UserController::class, 'index']);
Route::get('home', [HomeController::class, 'index'])->name("home");
App\Http\Controller\UserController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::get();
return redirect()->route("home");
}
}
App\Http\Controller\UserController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::get();
return to_route("home");
}
}
App\Http\Controller\UserController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::get();
return redirect("home");
}
}
Aqui está um exemplo se você pode passar os parâmetros de rota como o segundo argumento para route():
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function show(User $user)
{
return \Redirect::route('home', [$user->id])->with('message', 'User id found.');
}
}
Se for apenas um, você também não precisa escrevê-lo como uma matriz:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function show(User $user)
{
return \Redirect::route('home', $user->id)->with('message', 'User id found.');
}
}
Caso sua rota tenha mais parâmetros, ou se tiver apenas um, mas você deseja especificar claramente qual parâmetro tem cada valor (para fins de legibilidade), você sempre pode fazer isso:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function show(User $user)
{
return \Redirect::route('home', ['id'=>$user->id,'OTHER_PARAM'=>'XXX',...])->with('message', 'User id found.');
}
}
Feliz Codificação!!!