2

我有一个名为 UserDegree 的 mysql 数据库表,当我尝试使用 Doctrine 导入回 PHP 时,它会生成一个模型名称 Userdegree,有没有办法解决这个问题?

我真的找不到任何好的学说文档。

谢谢!

4

2 回答 2

2

我不确定您的具体问题,但是对于“良好的学说文档”部分,您是否尝试过手册?请参阅Doctrine ORM for PHP——我认为它实际上非常好,尤其是与其他一些没有太多文档或完全过时的项目相比。

关于您的问题(正如我之前所说,不确定):我想 Doctrine 从数据库中的表名中获取每个“单词”,并将其转换为 PHP 的“名称”。很多时候,表名中的“单词”由下划线' _'分隔,并且都是小写或任何一种。

我想,如果你将你的表命名为“ user_degree”,而不是“ UserDegree”,那么 Doctrine 应该检测到它由两个“单词”组成,并创建一个名为“ UserDegree”的 PHP 类——实际上,我用一个名为 的表进行了测试post_has_tag,它生成一个名为PostHasTag.

于 2009-10-01T04:00:10.263 回答
1

帕斯卡尔马丁是正确的。该表应命名为 user_degree,在这种情况下,Doctrine 将生成 UserDegree 类。

我最近还发现可以将所有数据库标识符保持为 under_scores,同时让 Doctrine 生成 camelCase'd 代码。如上所述,它会自动发生在表名中。至于字段名称,可以使用 YAML 模式文件的别名功能将它们映射到 camelCase(名称:user_id as userId)。此外,您可以通过为 Doctrine 开发自定义任务来自动化字段别名。

于 2009-10-25T08:43:00.750 回答