Percorso artigianale di Laravel: la cache causa un'eccezione di dati errati


9

Esecuzione del comando: php artisan route:cacheproduce la seguente esecuzione:

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

In esecuzione: lo php artisan route:clearrisolve

Mi piacerebbe sapere come posso risolvere questo problema in modo da poter memorizzare nella cache i miei percorsi.


1
Rimuovere eventuali chiusure (funzioni incorporate) nei percorsi, se presente.
jsHate,

Non ho chiusure nel mio file di rotte
Nate

Affrontare lo stesso problema senza chiusure nei percorsi.
nwaweru,

Sto affrontando lo stesso problema, hai trovato una soluzione alternativa che potresti condividere?
The Unknown Dev

Non ancora, sto pianificando di ritirarmi in una nuova directory e vedere cosa succede
Nate

Risposte:


2

Dopo un sacco di cose da capire. Ho scoperto che Apache2 utilizzava ancora una versione precedente di PHP anche se la versione della CLI era aggiornata.

Dopo aver disinstallato tutte le versioni precedenti di php e riconfigurato Apache2 per utilizzare l'ultima versione, è stato risolto questo problema.


1

Questo ha funzionato per me

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

Sfortunatamente, questo non ha funzionato.
Nate

1

Spero che tu stia usando la stessa versione php per CLI e anche per il progetto. Anche la cache di routing di PHP 7.4 non funziona con php 7.3.


0

basta rimuovere uno spazio vuoto tra la linea del percorso ..

php artisan optimize:clear
php artisan optimize

1
In che modo rimuovere le righe vuote sarebbe utile in un file di route?
Nate,

0

Quando si tenta di aggiornare Laravel, si è verificato lo stesso problema. L'unico modo che mi ha aiutato è stato il downgrade della versione di symfony / routing alla v4.2.0 (avevo la versione 4.4.3)

composer require symfony/routing:v4.2.0


Ho provato a eseguire il downgrade di symfony / routing alla v4.2.0 per vedere se ciò avrebbe aiutato, ma non ci sono riuscito perché la versione di symfony / routing era troppo bassa per l'attuale versione di Laravel (6.9.0).
Nate,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.