установке в поле массива, содержащего кириллицу (
$entity->setData(['test'=>'Тестовая запись'])
) - в базе получаю \u123 символы вместо кириллицы.
Геттеры возвращают кириллицу и всё нормально. Но выходит, что кириллические %LIKE% запросы по этому полю не работают. Подскажите, пожалуйста, как поправить?
Кодировка поля в базе utf8mb_bin
в чем вопрос? все хорошо же а LIKE нужны, понял
Добиться работы SELECT * WHERE table.data LIKE %тест%
через JSON_EXTRACT тоже не работает?
json_encode и Принимать строку? И тип колонки json?
В ентити - поле и так json, что в базе сделало его типом longtext Но при поытке передать строку: $entity->setData(json_encode(['test'=>'Тестовая запись'])) Ругается, что сущность должна быть array
Я же написал принимать строку
Ааа, текст в БД Я думал json
Изменил в entity тип поля с json на text Принимаю строку - но всё равно \u123 вместо кирилицы.. Оказалось, я тупица и это вообще не связано с доктриной и базой. \u123 появляется на этапе json_encode флаг json_encode($test, JSON_UNESCAPED_UNICODE) решает проблему Понимаю, что это уже не связано с symfony - но может кто подскажет есть ли способ настроить так, чтобы этот флаг был установлен для json_encode по умолчанию? Чтобы кирилица не похерилась где нибудь по дороге от моего кода в базу через другие библиотеки.
https://github.com/automagistre/automagistre/blob/master/src/Doctrine/DBAL/Types/JsonType.php
Очередной костыль
Спасибо, попробую
Спасибо! Работает
Обсуждают сегодня