Как сопоставить подчеркнутые столбцы таблицы со свойствами класса модели camelcased в ZF2?


Я разрабатываю Apigility управляемое веб-приложение на основе Zend Framework 2. Для слоя модели я использую ZfcBase DbMapper.

В настоящее время столбцы в моих таблицах БД называются точно так же, как соответствующие свойства модели. Для обоих я использую нотацию на верблюжьей основе (это было первое временное решение). Теперь я хотел бы исправить названия столбцов и сделать их неокрашенными.

Как это сделать без использования ORM (например доктрина )? Думаю, мне понадобятся Фильтры (Zend\Filter\Word\CamelCaseToUnderscore, Zend\Filter\Word\UnderscoreToCamelCase, Zend\Filter\StringToLower или просто strtolower(...)). Хорошо, но где и как их следует использовать здесь?

Author: automatix, 2015-01-19

1 answers

Вы должны обновить все имена столбцов базы данных с помощью нового соглашения об именовании under_score, адаптер базы данных автоматически запросит у базы данных эту информацию.

Затем, чтобы "сопоставить" новое свойство column_name с свойством объекта propertyName, картографу требуется гидратор объектов.

Сопоставитель по умолчанию является ClassMethods, который из коробки поддерживает преобразование в разделенные подчеркиванием клавиши, используя упомянутые вами классы фильтров.

Поэтому именование должно просто работать, вам нужно будет только передать true конструктору гидратора (underscoreSeparatedKeys), что можно сделать очень легко, когда вы создаете свой картограф.

 3
Author: AlexP, 2015-01-19 10:17:06