turganbay
@turganbay
full stuck developer

Существует ли Translatable Behavior для Doctrine с хранением переводов в json типе?

Последний раз использовал Doctrine пару лет назад. Для перевода полей сущности использовал StofDoctrineExtensionsBundle где отдельная таблица в БД для хранения переводов, либо по таблице переводов на каждую сущность и они потом джоинились. С появлением в MySql >=5.7.8 поддержки JSON полей нативно появилась возможность хранить переводы в одной колонке:

Колонка name в БД теперь может иметь содержимое:
{"ru": "Тест", "en": "Test"}

и теперь содержимое будет вытаскиваться с ключом ru или en в зависимости от текущей локали или сохранятся под правильным ключом в БД при сабмите формы со значением name=Test2&... , и перевод делается элементарно и просто.

Существует ли Translatable Behavior для Doctrine с хранением переводов в json типе?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
По указанной ссылке нормально решение сам автор себе подкинул c ValueObject, в независимости от того, есть JSON поддержка в СУБД или нет.

Если вы захотите в этот тип заинжектить какое-то поведение из фреймворка, то можно это сделать так:
достать Type и добавить ему поведение в Kernel::boot(), так сделано например тут:
https://github.com/dunglas/doctrine-json-odm/blob/...

Кстати можете целиком взять указанный бандл, тогда вся ваша работа сведется к тому, что вам нужно будет просто написать нормалайзер/денормалайзер для вашего ValueObject
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы