11 Les Bases de Laravel 11 : Generation d'URL

Laravel fournit plusieurs helpers pour vous aider a generer des URL pour votre application. Ces helpers sont utiles lors de la construction de liens dans vos templates et reponses API, ou lors de la generation de reponses de redirection vers une autre partie de votre application.
Generation d'URL
L'helper url peut etre utilise pour generer des URL arbitraires pour votre application. L'URL generee utilisera automatiquement le schema (HTTP ou HTTPS) et l'hote de la requete actuelle :
$post = App\Models\Post::find(1);
echo url("/posts/{$post->id}");
// http://example.com/posts/1Pour generer une URL avec des parametres de chaine de requete, vous pouvez utiliser la methode query :
echo url()->query('/posts', ['search' => 'Laravel']);
// https://example.com/posts?search=LaravelFournir des parametres de chaine de requete qui existent deja dans le chemin ecrasera leur valeur existante :
echo url()->query('/posts?sort=latest', ['sort' => 'oldest']);
// http://example.com/posts?sort=oldestAcceder a l'URL Actuelle
Si aucun chemin n'est fourni a l'helper url, une instance Illuminate\Routing\UrlGenerator est retournee, vous permettant d'acceder aux informations sur l'URL actuelle :
echo url()->current(); // Obtenir l'URL actuelle sans la chaine de requete
echo url()->full(); // Obtenir l'URL actuelle incluant la chaine de requete
echo url()->previous(); // Obtenir l'URL complete de la requete precedenteURL pour les Routes Nommees
L'helper route peut etre utilise pour generer des URL vers des routes nommees. Les routes nommees vous permettent de generer des URL sans etre couple a l'URL reelle definie sur la route. Par exemple, imaginez que votre application contient une route definie comme suit :
Route::get('/post/{post}', function (Post $post) {
// ...
})->name('post.show');Pour generer une URL vers cette route, vous pouvez utiliser l'helper route :
echo route('post.show', ['post' => 1]);
// http://example.com/post/1Tout element de tableau supplementaire qui ne correspond pas aux parametres de definition de la route sera ajoute a la chaine de requete de l'URL :
echo route('post.show', ['post' => 1, 'search' => 'rocket']);
// http://example.com/post/1?search=rocketURL Signees
Laravel vous permet de creer facilement des URL "signees" vers des routes nommees. Ces URL ont un hash de "signature" ajoute a la chaine de requete qui permet a Laravel de verifier que l'URL n'a pas ete modifiee depuis sa creation. Pour creer une URL signee vers une route nommee, utilisez la methode signedRoute de la facade URL :
use Illuminate\Support\Facades\URL;
return URL::signedRoute('unsubscribe', ['user' => 1]);Pour generer une URL de route signee temporaire qui expire apres une duree specifiee, utilisez la methode temporarySignedRoute :
use Illuminate\Support\Facades\URL;
return URL::temporarySignedRoute('unsubscribe', now()->addMinutes(30), ['user' => 1]);Validation des Requetes de Route Signee
Pour verifier qu'une requete entrante a une signature valide, appelez la methode hasValidSignature sur l'instance Illuminate\Http\Request entrante :
use Illuminate\Http\Request;
Route::get('/unsubscribe/{user}', function (Request $request) {
if (! $request->hasValidSignature()) {
abort(401);
}
// ...
})->name('unsubscribe');URL pour les Actions de Controleur
La fonction action genere une URL pour l'action de controleur donnee :
use App\Http\Controllers\HomeController;
$url = action([HomeController::class, 'index']);Si la methode du controleur accepte des parametres de route, vous pouvez passer un tableau associatif de parametres de route comme deuxieme argument de la fonction :
$url = action([UserController::class, 'profile'], ['id' => 1]);Valeurs par Defaut
Vous pouvez specifier des valeurs par defaut a l'echelle de la requete pour certains parametres d'URL en utilisant la methode URL::defaults. Par exemple, vous pouvez souhaiter definir une valeur par defaut pour le parametre {locale} dans vos routes :
$request->user()->locale
]);
return $next($request);
}
}Conclusion
Utiliser les helpers de generation d'URL de Laravel peut simplifier le routage et la navigation de votre application. Que vous generiez des liens dans des templates ou que vous creiez des URL signees et securisees, ces outils vous aident a construire une application robuste et maintenable. Pour plus d'informations detaillees, consultez la documentation officielle de Generation d'URL Laravel.
En savoir plus sur la generation d'URL dans Laravel 11 et ameliorez les capacites de routage de votre application. Consultez la documentation officielle pour plus d'exemples et d'utilisation avancee.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

10 Les Bases de Laravel 11 : Bundling d'Assets
Apprenez les essentiels du bundling d'assets dans Laravel 11 avec Vite, couvrant l'installation, la configuration et des exemples pratiques pour le developpement web.

9 Les Bases de Laravel 11 : Templates Blade
Apprenez les essentiels des Templates Blade dans Laravel 11, en vous concentrant sur les fonctionnalites cles et des exemples pratiques pour ameliorer vos competences en developpement web.