Использовать пользовательское имя таблицы в плагине Symfony sfDoctrineGuardPlugin? - PullRequest
1 голос
/ 20 января 2011

Я пытаюсь использовать sfDoctrineGuardPlugin в моем проекте Symfony 1.4. Этот плагин включает в себя файл schema.yml, который используется для определения всех задействованных таблиц. Имена таблиц имеют вид: sf_guard_user, sf_guard_user_group, sf_guard_user_permission и т. Д. Я бы предпочел, чтобы эти таблицы были названы: users, user_groups, user_permissions и т. Д. Есть ли способ сделать это без непосредственного редактирования кода плагина

Ответы [ 2 ]

5 голосов
/ 20 января 2011

Переопределите эти вещи в файлах схемы вашего проекта:

sfGuardGroup:
  tableName: groups

sfGuardPermission:
  tableName: permissions

sfGuardGroupPermission:
  tableName: groups_permissions

Кроме того, я бы предпочел переместить их в отдельный файл, скажем sfDoctinePlugin-schema.yml.

Надеюсь, это поможет.

1 голос
/ 20 января 2011

Это не очень хорошая практика, и я бы не рекомендовал вам это делать.

С учетом сказанного (выделено жирным шрифтом, ха-ха) вы сможете скопировать включенную схему в схему уровня проекта и добавить ключ tableName к каждому определению записи. Я знаю, что изменение схемы таким способом работает, вообще говоря, потому что я делаю это регулярно, чтобы добавить дополнительные столбцы к sfGuardUser вместо использования полноценного класса профиля ... Я предполагаю, что изменение имени таблицы также будет работать.

То, что после сборки базы данных вы должны увидеть имена таблиц. Дело в том, что в реальном коде плагина есть случаи, когда кто-то жестко закодировал имя таблицы вместо использования псевдонима, определенного в модели, что-то может не сработать. Я не знаю, есть ли подобные ситуации, но вам следует тщательно протестировать, прежде чем приступить к проекту.

...