PHP Doctrine 1.2 имена таблиц - PullRequest
       19

PHP Doctrine 1.2 имена таблиц

0 голосов
/ 13 января 2010

Я пытаюсь обновить свою доктрину ORM с 1.1.6 до 1.2.1, но я обнаружил проблему с именами таблиц в BC.

В некоторых именах моей таблицы есть несколько слов (например, t_foo_bar для класса FooBar), где префикс t_ генерируется автоматически с помощью:

$manager->setAttribute(Doctrine_Core::ATTR_TBLNAME_FORMAT, 't_%s');

Это хорошо работало в предыдущих версиях. В 1.2.1, однако, похоже, что доктрина ищет t_foobar (вместо t_foo_bar с подчеркиванием).

Знаете ли вы, как решить эту проблему без изменения имен таблиц?

Ответы [ 2 ]

2 голосов
/ 13 января 2010

В методе setTableDefinition() вашей модели вы можете вызвать $this->setTableName('t_foo_bar'), чтобы явно указать имя таблицы. Это намного лучше, так как если какой-то класс будет переименован, приложение продолжит работать.

1 голос
/ 25 апреля 2010

О, я попал сюда через Google. Я только что запустил Symfony и хочу добавить приложение Symfony + Doctrine в существующее веб-приложение.

Я нашел этот материал в Doctrine docs (обратите внимание, вторая строка):


Group:
  **tableName: group_table**
  columns:
    id:
      type: integer(4)
      autoincrement: true
      primary: true
    name:
      type: string(255)
  relations:
    Users:
      foreignAlias: Groups
      class: User
      refClass: GroupUser

Похоже, вы также можете определить имя таблицы в файле yml.

...