2012-10-03 2 views
19

Я прочитал chapter о стратегиях именования Doctrine в руководстве. К сожалению, я не понимаю, где я должен поставить код конфигурации.Как настроить стратегию именования в Doctrine 2

Для того, чтобы получить стратегию именования подчеркивания я должен использовать этот код:

$namingStrategy = new \Doctrine\ORM\Mapping\UnderscoreNamingStrategy(CASE_UPPER); 
$configuration()->setNamingStrategy($namingStrategy); 

Где я должен поставить это?

Я нахожусь на Symfony 2 - Я думаю, это имеет значение, когда дело доходит до конфигурации.

ответ

33

Настройка его в config.yml:

doctrine: 
    # ... 

    orm: 
     # ... 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
+0

Я думаю, что это работает только с последней версией dev (https://github.com/doctrine/DoctrineBundle/pull/90). Я на 2.2, который не включает этот вариант конфигурации. – BetaRide

+0

Я нахожусь в Symfony SE 2.1.2, который включает DoctrineBundle, который поддерживает эту конфигурацию. Разве вы еще не обновились? ;) –

+1

Извините за шум. Он работает нормально. Поскольку у меня есть несколько менеджеров сущностей, мне пришлось узнать, что этот параметр задан для менеджера сущностей. – BetaRide

12

Для нескольких менеджеров сущностей:

doctrine: 
    # ... 
    orm: 
     # ... 
     entity_managers: 
      default: 
       naming_strategy: doctrine.orm.naming_strategy.underscore 
       # ... 
+1

Включите эту проблему после добавления диспетчера сущностей по умолчанию. «Неопознанные варианты» naming_strategy, a uto_mapping "под" doctrine.orm "' Довольно глупый я не понял это. Но быстрый поиск помог мне указать на меня. Благодаря! –

3

Если вы используете файл console.php для запуска командной строки вы можете поместить его там.

<?php 

//something... 

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

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

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

//something else... 
Смежные вопросы