У меня есть таблица базы данных, содержащая поля с именами вроде xx_yy_1, xx_yy_2 и т. д. К сожалению, Doctrine не сгенерировала геттеры/сеттеры для этих полей. Я думаю, это происходит только в том случае, если перед числом стоит знак подчеркивания. Как я могу решить эту проблему?
Symfony 1.4 не создает геттеры для полей с подчеркиванием перед числами.
Ответы (2)
Это непоследовательное поведение в Doctrine. Вы можете получить доступ к таким полям, как $record->getXxYy_1() или $record->get('xx_yy_1'). DocBlock в верхней части сгенерированного класса базовой модели неверен, поэтому автозаполнение может предлагать неправильные имена методов для этих полей.
person
1ed
schedule
21.09.2012
И то, и другое не сработало. Я добавил в свой класс геттер-методы, расширяющие базовый класс, но не знаю, как правильно их заполнить. :-/
- person mene; 22.09.2012
Возможно, вы что-то упустили, потому что у меня это работает без каких-либо изменений модели классов (имена полей, такие как
address_line_1, могут быть доступны с помощью getAddressLine_1() или get('address_line_1')). Если вам нужен собственный геттер, вы также можете использовать в нем return parent::_get('xx_yy_1').
- person 1ed; 22.09.2012
добавление публичной функции getXxYy4(){ return parent::_get('xx_yy_4'); } работает на меня. Спасибо! :-)
- person mene; 24.09.2012
Это проблема доктрины. Вы должны называть свои столбцы без подчеркивания + числа, например:
xx_yy1 вместо xx_yy_1.
Итак, метод всегда ->getXxyy1(); или ->получить('xx_yy1')
person
glerendegui
schedule
23.09.2012
как написано выше, это будет только вариант, если это абсолютно необходимо. Это бы испортило DB-Sync...
- person mene; 24.09.2012
schema.ymlв таблицу, содержащую эти поля? - person j0k   schedule 21.09.2012xx_yy_1наxx_yy1... - person Visavì   schedule 21.09.2012