Doctrine 2 ORM 使用可恶的 CamelCase 创建类

Pav*_*hov 4 camelcasing getter-setter doctrine-orm

我为 Doctrine 创建了 yaml 配置。当我尝试时doctrine orm:generate-entities,它会创建带有驼峰式大小写的 getter 和 setter 的 php 文件。因此,is_public领域转化为setIsPublic方法getIsPublic。真是太糟糕了。我怎样才能得到set_is_publicget_is_public?我可以手动编辑生成的 php 文件,但我不知道更改架构时会发生什么。

aal*_*aap 5

您可以选择Doctrine 用于生成项目的命名策略:

使用命名策略,您可以提供在未给出表/列名称时自动生成数据库标识符、列和表名称的规则。此功能有助于减少映射文档的冗长性,消除重复的噪音(例如:TABLE_)。

对于您的具体情况,我认为您正在考虑以下内容:

$namingStrategy = new \Doctrine\ORM\Mapping\UnderscoreNamingStrategy(CASE_LOWER);
$configuration()->setNamingStrategy($namingStrategy);
Run Code Online (Sandbox Code Playgroud)

链接的主题继续向您展示如何编写自己的自定义命名策略。

如果您使用 Symfony,则更容易(就像大多数事情都是使用 Symfony 一样,但这只是我的意见)通过config.yml

doctrine:
    orm:
        naming_strategy: doctrine.orm.naming_strategy.underscore
Run Code Online (Sandbox Code Playgroud)