我正在尝试将我的学说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)。
您是否知道如何在不更改表名的情况下解决此问题?
答案 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文件中定义表名。