PHP Doctrine 1.2表名

时间:2010-01-13 15:42:17

标签: php orm doctrine

我正在尝试将我的学说ORM从1.1.6升级到1.2.1但我已经遇到了一个带有表名的BC问题。

我的一些表名有几个单词(例如,类FooBar的t_foo_bar),其中t_前缀自动生成:

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

这在以前的版本中效果很好。然而,在1.2.1中,看起来doctrine正在寻找t_foobar(而不是带有下划线的t_foo_bar)。

您是否知道如何在不更改表名的情况下解决此问题?

2 个答案:

答案 0 :(得分:2)

在模型的setTableDefinition()方法中,您可以调用$this->setTableName('t_foo_bar')来明确设置表名。这样做要好得多,就像某个类被重命名一样,应用程序将继续工作。

答案 1 :(得分:1)

哦,我通过谷歌来到这里。我刚刚开始使用symfony,并希望将symfony + doctrine应用程序添加到现有的Web应用程序中。

我在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文件中定义表名。