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.

Nate
la source
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.

Nate
la source
1

Cela a fonctionné pour moi

php artisan optimize:clear
php artisan config:clear
php artisan config:cache
composer dump-autoload 
Vishnu Damwala
la source
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.

Subtain Ishfaq
la source
0

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

php artisan optimize:clear
php artisan optimize
Riko Pramayudi
la source
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

Mykola
la source
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