У меня есть таблица в базе данных PostgreSQL, столбцы которой имеют формат snake_case.
Есть ли способ получить атрибуты моей модели в camelCase?
например: у меня есть стол user
с двумя колоннами id_user
(первичный ключ) и last_name
Когда я выполняю запрос, как основной findByPK()
Я бы получил следующий результат (например, для JSON): { idUser : "bar", lastName: "foo" }
вместо
{ id_user : "bar", last_name: "foo" }
Я пытался справиться с этим с помощью пользовательской проекции с псевдонимами, но столкнулся с проблемой при форматировании первичного ключа в camelCase (используя unsetField / setField).
В случае, если вы просто хотите экспортировать сущности в виде JSON, вот способ:
Переопределить FlexibleEntity::extract()
и верблюжий чемоданчик всех ключей. Вы также можете добавить свой собственный jsonSerialize
метод (вызов извлечения) и заставить ваши сущности реализовать JsonSerializable
интерфейс.
FlexibleEntity
класс ничего не знает о базе данных. Это может быть использовано для чего-то еще, хотя. Следовательно, он не знает, как получить связанные данные. Идея состоит в том, чтобы заставить ваши SQL-запросы извлекать нужные данные, они также будут извлечены.
Если это не то, что вы хотите, вы можете написать свой собственный FlexibleContainer
класс сущности (я слышал, кто-то сделал это для хранения рекурсивных наборов результатов).
Других решений пока нет …