Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Symfony 1.4 не создает геттеры для полей с подчеркиванием перед числами.

Автор вопроса: meneОтветов: 2

У меня есть таблица базы данных, содержащая поля с именами вроде xx_yy_1, xx_yy_2 и т. д. К сожалению, Doctrine не сгенерировала геттеры/сеттеры для этих полей. Я думаю, это происходит только в том случае, если перед числом стоит знак подчеркивания. Как я могу решить эту проблему?

  • Не могли бы вы вставить schema.yml в таблицу, содержащую эти поля? j0k 21.09.2012
  • Вы правы, кажется, что подчеркивание перед числом создает некоторые проблемы. См. этот Q/A< /а>. Единственное решение, которое я нашел, это изменить имя формы полей xx_yy_1 на xx_yy1... Visavì 21.09.2012
  • Мне не нравится менять модель БД, так как ее нужно синхронизировать с другой БД. Вы уверены, что нет другого решения (например, добавления геттеров)? mene 22.09.2012

phpgettergetter-settersymfony1

Ответы

Ответ 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.

Похожие материалы