2012-10-03 11 views
19

Ho letto lo chapter sulle strategie di denominazione di Doctrine nel manuale. Purtroppo non capisco dove devo mettere il codice di configurazione.Come configurare la strategia di denominazione in Doctrine 2

al fine di ottenere una strategia di denominazione di sottolineatura dovrei usare questo codice:

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

Dove devo mettere questo?

Sono su Symfony 2 - Credo che questo sia importante quando si tratta della configurazione.

risposta

33

configurarlo in config.yml:

doctrine: 
    # ... 

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

Penso che questo funzioni solo sull'ultima versione di sviluppo (https://github.com/doctrine/DoctrineBundle/pull/90). Sono su 2,2 che non include questa opzione di configurazione. – BetaRide

+0

Sono su Symfony SE 2.1.2 che include DoctrineBundle che supporta questa opzione di configurazione. Non hai ancora aggiornato? ;) –

+1

Ci scusiamo per il rumore. Funziona bene. Dal momento che sto avendo più gestori di entità, ho dovuto imparare che l'opzione è impostata per gestore di entità. – BetaRide

12

Per più gestori di entità:

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

Rannuato in questo problema, dopo aver aggiunto un gestore di entità "predefinito". "Opzioni non riconosciute" naming_strategy, a uto_mapping "sotto" doctrine.orm "' Abbastanza sciocco non l'ho capito. Ma una rapida ricerca mi ha aiutato a indicarmi qui. Grazie! –

3

Se si utilizza un file console.php per eseguire il CLI si potrebbe metterlo lì.

<?php 

//something... 

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

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

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

//something else...