如何在Doctrine 2中配置命名策略

Bet*_*ide 22 symfony doctrine-orm

我在手册中阅读了有关Doctrine命名策略的章节.不幸的是我不明白我在哪里放置配置代码.

为了获得下划线命名策略,我应该使用以下代码:

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

我应该把它放在哪里?

我在Symfony 2上 - 我想这在配置方面很重要.

Eln*_*mov 36

配置它config.yml:

doctrine:
    # ...

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


Jek*_*kis 14

对于多个实体经理:

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

  • 添加“默认”实体管理器后,遇到此问题。““ doctrine.orm”下无法识别的选项“ naming_strategy,uto_mapping”'很愚蠢,我没有弄清楚。但是快速搜索帮助我找到了这里。谢谢! (2认同)

die*_*pso 5

如果您使用 console.php 文件来运行 CLI,您可以将它放在那里。

<?php

//something...

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);

$namingStrategy = new UpperCamelCaseNamingStrategy();
$config->setNamingStrategy($namingStrategy);

$em = EntityManager::create($dbParams, $config);

//something else...
Run Code Online (Sandbox Code Playgroud)