11 Les Bases de Laravel 11 : Generation d'URL

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

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/1

Pour 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=Laravel

Fournir 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=oldest

Acceder 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 precedente

URL 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/1

Tout 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=rocket

URL 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.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Créer un Slackbot personnalisé avec NVIDIA NIM et LangChain.

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

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.

10 min read·

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.

10 min read·