Symfony 3 – Примечание: unserialize(): ошибка по смещению 11 из 28 байтов

Я не понимаю, я работаю под Symfony 3 и у меня просто возникает ошибка, когда я хочу перейти на свою страницу администрирования пользователей:

Notice: unserialize(): Error at offset 11 of 28 bytes

Symfony\Component\Debug\Exception\ ContextErrorException

in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php (line 58)

Однако, прежде чем это работало очень хорошо, это очень странно. У нескольких других людей уже была такая же проблема, но это никогда не было той же причиной.

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

Если это поможет решить мою проблему, вот мой user.php

Спасибо !

Обновлено: Хорошо, я просто очень глуп. Моя сущность User наследуется от FOSUserBundle. В моей базе данных у меня был пользователь с ролью SUPER_ADMIN. Тем временем Suaf в своем коде я удалил эту роль, чтобы оставить только роль ADMIN, и я изменил себя в базе данных, удалив слишком много «SUPER». Я не думал, что это сделает такой баг, если кто-нибудь может объяснить мне, почему, для моей культуры.

Но в любом случае проблема все же решаема!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
1 331
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит потому, что роли хранятся в виде сериализованного массива, например:

a:1:{i:0;s:16:"ROLE_SUPER_ADMIN";}

Видишь это s:16? Это означает, что при десериализации php займет 16 символов (а это ровно ROLE_SUPER_ADMIN).

Итак, когда вы удалили SUPER, ваши данные стали

a:1:{i:0;s:16:"ROLE_ADMIN";}

а s:16 — это неправильный, потому что теперь у вас есть символы 10 вместо 16. Но php пытается получить 16, что вызывает ошибку.

Это приводит нас к выводу, что редактирование необработанных данных — это не хорошая идея.

Другие вопросы по теме