Maison > cadre php > Laravel > Laravel 5.7 ne peut pas accéder au routage

Laravel 5.7 ne peut pas accéder au routage

WBOY
Libérer: 2023-05-20 15:59:39
original
586 Les gens l'ont consulté

Avec le lancement de Laravel 5.7, de nombreux utilisateurs ont signalé des problèmes de routage d'accès. L’émergence de ce problème peut vous faire perdre beaucoup de temps pendant le processus de développement. Afin de vous aider à résoudre ce problème, cet article présentera en détail la solution au problème selon lequel Laravel 5.7 ne peut pas accéder au routage.

Nous devons d'abord comprendre certains nouveaux changements dans Laravel 5.7, qui peuvent empêcher le code précédent de s'exécuter correctement. L’un des changements les plus importants est l’ajout par défaut du middleware de protection CSRF. Ce middleware peut garantir que les données du formulaire soumises par l'utilisateur proviennent de votre application et empêcher l'application des attaques CSRF.

Le middleware de protection CSRF existe déjà dans Laravel 5.6, mais il n'est pas activé par défaut. Mais dans Laravel 5.7, l'équipe Laravel a activé ce middleware par défaut. Par conséquent, dans Laravel 5.7, vous devez ajouter un jeton CSRF lors de la soumission de données à l'aide d'un formulaire.

Solution :

Il existe deux façons de résoudre le problème de Laravel 5.7 qui ne peut pas accéder au routage. La première méthode consiste à ajouter le jeton CSRF dans le fichier web.php. La deuxième méthode consiste à désactiver le middleware de protection CSRF.

Méthode 1 : Ajouter le token CSRF dans le fichier web.php

Le groupe middleware web est utilisé par défaut dans le RouteServiceProvider.php du code Laravel 5.7, donc, sur le Web. Le moyen le plus simple d'ajouter un jeton CSRF dans un fichier php est d'utiliser la méthode {{ csrf_field() }}.

Par exemple, si vous avez une route qui gère les requêtes POST :

Route::post('/foo', function () {

return 'Hello World';
Copier après la connexion
#🎜 🎜 #});

Vous devez ajouter la méthode {{ csrf_field() }} au formulaire pour générer le token CSRF :

{{ csrf_field() }}
<!-- ... -->
Copier après la connexion

Cette méthode garantit que votre application Laravel 5.7 peut gérer normalement les requêtes POST.

Méthode 2 : Désactiver le middleware de protection CSRF

La désactivation du middleware de protection CSRF est une autre façon de résoudre le problème selon lequel Laravel 5.7 ne peut pas accéder au routage. Bien que cette approche puisse légèrement réduire la sécurité de votre application Laravel, elle est réalisable si votre application n'est pas exposée aux attaques CSRF.

Pour désactiver le middleware de protection CSRF, vous devez ajouter l'URI à ignorer dans l'attribut $sauf de la classe VerifyCsrfToken.

Ouvrez le fichier app/Http/Middleware/VerifyCsrfToken.php et ajoutez les routes à ignorer dans l'attribut $sauf :

protected $sauf = [

'your-route-to-ignore'
Copier après la connexion

];

Par exemple, disons que vous souhaitez ignorer la route « register » :

protected $sauf = [

'register'
Copier après la connexion
#🎜 🎜#];# 🎜🎜#Cette méthode garantit que votre application Laravel 5.7 peut gérer correctement toutes les requêtes.

Conclusion :

En général, le problème de l'impossibilité d'accéder aux routes dans Laravel 5.7 est principalement dû au middleware de protection CSRF activé par défaut. Par conséquent, si vous rencontrez ce problème lors du développement, vous pouvez essayer ces deux méthodes pour le résoudre. Si vous souhaitez désactiver le middleware de protection CSRF, vous ne devez l'utiliser que pour les itinéraires qui n'impliquent pas de données sensibles ou importantes. Cette méthode peut légèrement réduire la sécurité de votre application Laravel, il est donc recommandé d'utiliser la première méthode pour garantir la sécurité de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal