在Symfony插件sfDoctrineGuardPlugin中使用自定义表名?

时间:2011-01-20 01:13:04

标签: authentication plugins symfony1 symfony-1.4 sfguard

我正在尝试在Symfony 1.4项目中使用sfDoctrineGuardPlugin。此插件包含一个schema.yml文件,该文件用于定义所涉及的所有表。表名采用以下形式:sf_guard_user,sf_guard_user_group,sf_guard_user_permission等。我宁愿将这些表命名为:users,user_groups,user_permissions等。有没有办法让我在不直接编辑插件代码的情况下执行此操作?

2 个答案:

答案 0 :(得分:5)

覆盖项目模式文件中的那些内容:

sfGuardGroup:
  tableName: groups

sfGuardPermission:
  tableName: permissions

sfGuardGroupPermission:
  tableName: groups_permissions

另外,我更愿意将它们移到单独的文件中,比如sfDoctinePlugin-schema.yml

希望有所帮助。

答案 1 :(得分:1)

这不是一个好习惯,我会阻止你这样做。

用那个说(并加粗,哈哈)你应该能够将包含的模式复制到项目级模式中,并将tableName键添加到每个记录定义中。我知道以这种方式修改模式通常会起作用,因为我经常这样做以向sfGuardUser添加额外的列而不是使用完整的配置文件类...我假设修改表名也可以。

在构建数据库之后应该看到你的表名。问题是,如果在实际插件代码中有人硬编码表名而不是使用模型中定义的别名,则可能无法正常工作。我不知道有这样的情况,但在继续项目之前你应该彻底测试。