У меня есть таблица базы данных, содержащая поля с именами вроде xx_yy_1, xx_yy_2 и т. д. К сожалению, Doctrine не сгенерировала геттеры/сеттеры для этих полей. Я думаю, это происходит только в том случае, если перед числом стоит знак подчеркивания. Как я могу решить эту проблему?
Вопрос
Symfony 1.4 не создает геттеры для полей с подчеркиванием перед числами.
- Не могли бы вы вставить schema.yml в таблицу, содержащую эти поля? j0k 21.09.2012
- Вы правы, кажется, что подчеркивание перед числом создает некоторые проблемы. См. этот Q/A< /а>. Единственное решение, которое я нашел, это изменить имя формы полей xx_yy_1 на xx_yy1... Visavì 21.09.2012
- Мне не нравится менять модель БД, так как ее нужно синхронизировать с другой БД. Вы уверены, что нет другого решения (например, добавления геттеров)? mene 22.09.2012
Ответы
Ответ 1 · рейтинг 2 · 1ed
Это непоследовательное поведение в Doctrine. Вы можете получить доступ к таким полям, как $record->getXxYy_1() или $record->get('xx_yy_1'). DocBlock в верхней части сгенерированного класса базовой модели неверен, поэтому автозаполнение может предлагать неправильные имена методов для этих полей.
Ответ 2 · glerendegui
Это проблема доктрины. Вы должны называть свои столбцы без подчеркивания + числа, например:
xx_yy1 вместо xx_yy_1.
Итак, метод всегда ->getXxyy1(); или ->получить('xx_yy1')
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- SQL выбирает отдельные последние значения из таблицы
- Как правильно включить частичное представление в Laravel 5?
- Передача данных из представлений laravel 4.2
- Laravel 5.1: попытка получить свойство не-объекта в цикле foreach с отношением
- Doctrine 2 ORM создает классы с ненавистным CamelCase
- Как я могу решить проблему с andWhere с symfony/doctrine и odbc?