Доктрина не сохраняет сущность с логическими значениями и PDO :: ATTR_EMULATE_PREPARES = false в Mysql
Мы используем Symfony для создания некоторых веб-сервисов. Мы используем Doctrine-ORM для хранения сущностей и Doctrine-DBAL для извлечения данных, потому что они очень легкие и могут повторно использовать соединение ORM (диспетчер сущностей).
При использовании Doctrine-DBAL целочисленные значения возвращаются в PHP в виде строк, и мы хотим иметь целочисленные значения, особенно потому, что они возвращаются в Javascript. После этого обсужденияКак получить числовые типы из MySQL, используя PDO? мы установили MySQL драйверsudo apt-get install php5-mysqlnd
и настройте нашу конфигурацию Symfony (dbal) с помощью PDO :: ATTR_EMULATE_PREPARE = false:
doctrine:
dbal:
.
.
options:
20 : false # PDO::ATTR_EMULATE_PREPARES is 20
С этой конфигурацией мы получаем целые числа, когда поля mysql являются целыми числами. Все идет нормально.
Но есть новая проблема: при сохранении сущностей с логическими значениями через Doctrine-ORM сущность не сохраняется. Мы видим в журналах INSERT и COMMIT, но записи нет в базе данных (если мы используем таблицу без логических полей, определенных в сущности, запись сохраняется).
Кроме того, мы не получаем никаких ошибок или исключений, поэтому считаем это очень опасным. Мы думаем, что в библиотеке PDO есть ошибка, но нам нужно немного больше в ней разобраться.
Вопрос: кто-нибудь сталкивался с таким поведением? любой обходной путь? Должна ли Доктрина объяснить это?