Laravel - Reindirizzamenti
La rotta denominata viene utilizzata per dare un nome specifico a una rotta. Il nome può essere assegnato utilizzando il“as” chiave di matrice.
Route::get('user/profile', ['as' => 'profile', function () {
//
}]);
Note - Ecco, abbiamo dato il nome profile a una rotta user/profile.
Reindirizzamento a percorsi con nome
Esempio
Osservare il seguente esempio per capire di più sul reindirizzamento a rotte denominate:
Step 1 - Crea una vista chiamata test.php e salvalo in
resources/views/test.php.
<html>
<body>
<h1>Example of Redirecting to Named Routes</h1>
</body>
</html>
Step 2 - In routes.php, abbiamo impostato il percorso per test.phpfile. Lo abbiamo rinominatotesting. Abbiamo anche impostato un altro percorsoredirect che reindirizzerà la richiesta alla rotta indicata testing.
app/Http/routes.php
Route::get('/test', ['as'=>'testing',function() {
return view('test2');
}]);
Route::get('redirect',function() {
return redirect()->route('testing');
});
Step 3 - Visita il seguente URL per testare l'esempio di percorso denominato.
http://localhost:8000/redirect
Step 4 - Dopo l'esecuzione dell'URL sopra, verrai reindirizzato a http: // localhost: 8000 / test poiché stiamo reindirizzando alla rotta nominata testing.
Step 5 - Dopo aver eseguito con successo l'URL, riceverai il seguente output -
Reindirizzamento alle azioni del controller
Non solo route denominata, ma possiamo anche reindirizzare alle azioni del controller. Dobbiamo semplicemente passare il controller e il nome del fileactional metodo di azione come mostrato nell'esempio seguente. Se vuoi passare un parametro, puoi passarlo come secondo argomento del metodo di azione.
return redirect()->action(‘[email protected]’,[parameters]);
Esempio
Step 1 - Esegui il seguente comando per creare un controller chiamato RedirectController.
php artisan make:controller RedirectController --plain
Step 2 - Dopo aver eseguito con successo, riceverai il seguente output -
Step 3 - Copia il seguente codice su file
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 - Aggiungi le seguenti righe app/Http/routes.php.
app/Http/routes.php
Route::get('rr','[email protected]');
Route::get('/redirectcontroller',function() {
return redirect()->action('[email protected]');
});
Step 5 - Visita il seguente URL per provare l'esempio.
http://localhost:8000/redirectcontroller
Step 6 - L'output apparirà come mostrato nell'immagine seguente.