Маршрут ремесленника Laravel: кеш вызывает ошибочные данные Исключение


9

Выполнение команды: php artisan route:cacheпроизводит следующее исполнение:

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

Запуск: php artisan route:clearисправляет это

Я хотел бы знать, как я могу это исправить, чтобы я мог кэшировать свои маршруты.


1
Удалите все замыкания (встроенные функции) в маршрутах, если у вас есть.
jsHate

У меня нет никаких закрытий в моем файле маршрутов
Nate

Столкнувшись с той же проблемой без замыканий на маршрутах.
nwaweru

Я столкнулся с той же проблемой, вы нашли обходной путь, которым вы могли бы поделиться?
Неизвестный Дев

Пока нет, я планирую вернуться в новый каталог и посмотреть, что произойдет
Нейт

Ответы:


2

После куча выяснения вещей. Я обнаружил, что Apache2 все еще использует более старую версию PHP, хотя версия CLI была актуальной.

После удаления всех старых версий php и перенастройки Apache2 для использования последней версии эта проблема была устранена.


1

Это сработало для меня

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

К сожалению, это не сработало.
Nate

1

Я надеюсь, что вы используете ту же версию PHP для CLI, а также для проекта. Также PHP 7.4 кеш маршрутизации не работает с php 7.3.


0

просто удалите пробел между строк вашего маршрута ..

php artisan optimize:clear
php artisan optimize

1
Как удаление пустых строк поможет в файле маршрутов?
Нейт

0

При попытке обновить Laravel возникла та же проблема. Единственный способ, который помог мне, - это понизить версию symfony / routing до v4.2.0 (у меня была v 4.4.3)

composer require symfony/routing:v4.2.0


Попытался понизить symfony / routing до v4.2.0, чтобы посмотреть, поможет ли это, но я не смог, так как версия symfony / routing была слишком низкой для текущей версии Laravel (6.9.0).
Nate
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.