Doctrine ORM:不尊重案件的模特

时间:2009-10-01 01:44:15

标签: php orm doctrine models

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

关于你的问题(正如我之前所说的,不确定):我认为Doctrine从数据库中的表名中获取每个“单词”,并将其转换为PHP的“名称”。通常,表名中的“单词”用下划线“_”分隔,并且都是较低的或两种情况。

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

答案 1 :(得分:1)

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

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