【问题标题】:Doctrine ORM: Models not respecting caseDoctrine ORM:不尊重大小写的模型
【发布时间】:2010-12-02 20:34:23
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: php orm doctrine models


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-12-14
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 2020-03-14
        • 2010-10-08
        • 1970-01-01
        • 2014-06-11
        • 2019-10-15
        相关资源
        最近更新 更多