Что означает эта ошибка от "Doctrine2 и Symfony2"?
Не удалось преобразовать значение базы данных "" в массив типа Doctrine
Ответ 1
Вероятно, вы изменили поле из строки типа, чтобы набрать массив в вашей сущности, но уже имеете данные в базе данных. Это не удается при попытке конвертировать пустую строку из базы данных в массив.
Если это база данных разработки, просто удалите ее и создайте снова или просто удалите оскорбительные строки. Или вы можете преобразовать все пустые строки в a:0:{} (сериализованный пустой массив).
UPDATE table SET column="a:0:{}" WHERE column = "";
Ответ 2
Я бы предпочел, чтобы у всех не работало SQL в своей производственной базе данных.
@ORM\Column(type="array", nullable=TRUE)
Более простое решение для того, чтобы сделать столбец "nullable", поэтому после запуска "доктрины консоли: схема: обновление - сила" существующие записи базы данных получат значение NULL вместо пустой строки. И доктрина может обрабатывать преобразование значения базы данных NULL в массив типа Doctrine. Это должно быть просто ссылка NULL. И PHP empty() не волнует, если его массив нулевого размера или NULL.
В MySQL я получаю следующий sql-dump:
ALTER TABLE my_table ADD my_new_column LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)'
Ответ 3
Тип столбца таблицы db (например: longtext) не может соответствовать типу столбца Doctrine.
изменить тип столбца.