Route artisan Laravel: le cache provoque une exception de données erronées


9

L'exécution de la commande: php artisan route:cacheproduit l'exception suivante:

Erroneous data format for unserializing 'Symfony\Component\Routing\CompiledRoute'

En cours d'exécution: le php artisan route:clearrésout

J'aimerais savoir comment résoudre ce problème afin de pouvoir mettre en cache mes itinéraires.


1
Supprimez toutes les fermetures (fonctions en ligne) des itinéraires, si vous en avez.
jsHate

Je n'ai aucune fermeture dans mon fichier d'itinéraires
Nate

Face au même problème sans fermeture de routes.
nwaweru

Je suis confronté au même problème, avez-vous trouvé une solution de contournement que vous pourriez partager?
The Unknown Dev

Pas encore, je prévois de me reclasser dans un nouveau répertoire et de voir ce qui se passe
Nate

Réponses:


2

Après un tas de choses à comprendre. J'ai trouvé qu'Apache2 utilisait toujours une ancienne version de PHP même si la version CLI était à jour.

Après avoir désinstallé toutes les anciennes versions de php et reconfiguré Apache2 pour utiliser la dernière version, ce problème a été résolu.


1

Cela a fonctionné pour moi

php artisan optimize:clear
php artisan config:clear
php artisan config:cache
composer dump-autoload 

Malheureusement, cela n'a pas fonctionné.
Nate

1

J'espère que vous utilisez la même version php pour CLI et aussi pour le projet. Le cache de routage PHP 7.4 ne fonctionne pas non plus avec php 7.3.


0

il suffit de supprimer l'espace vide entre la ligne de votre itinéraire ..

php artisan optimize:clear
php artisan optimize

1
En quoi la suppression de lignes vides aiderait-elle dans un fichier de routes?
Nate

0

Lors de la mise à jour de Laravel, le même problème s'est posé. La seule façon qui m'a aidé était de rétrograder la version de symfony / routing vers la v4.2.0 (j'avais la v 4.4.3)

composer require symfony/routing:v4.2.0


J'ai essayé de rétrograder symfony / routing vers v4.2.0 pour voir si cela aiderait mais je ne pouvais pas car la version symfony / routing était trop faible pour la version actuelle de Laravel (6.9.0).
Nate
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.