2012-10-03 8 views
19

में नामकरण रणनीति को कॉन्फ़िगर कैसे करें I मैनुअल में सिद्धांत नामकरण रणनीतियों के बारे में chapter पढ़ा। दुर्भाग्यवश मुझे समझ में नहीं आता कि मुझे कॉन्फ़िगरेशन कोड कहां रखना है।सिद्धांत 2

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

मैं इस कहाँ रखना चाहिए:

आदेश में एक अंडरस्कोर नामकरण रणनीति मैं इस कोड का उपयोग करना चाहिए पाने के लिए?

मैं सिम्फनी 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

मैं सिम्फनी एसई 2.1.2 पर हूं जिसमें डॉक्ट्राइनबंडल शामिल है जो इस कॉन्फ़िगरेशन विकल्प का समर्थन करता है। क्या आपने अभी तक अपग्रेड नहीं किया है? ;) –

+1

शोर के लिए खेद है। यह ठीक काम कर रहा है। चूंकि मेरे पास एकाधिक इकाई प्रबंधक हैं, इसलिए मुझे यह जानना था कि विकल्प प्रति इकाई प्रबंधक सेट है। – BetaRide

12

कई इकाई प्रबंधकों के लिए:

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

"डिफ़ॉल्ट" इकाई प्रबंधक जोड़ने के बाद, इस समस्या में भाग लें। 'अपरिचित विकल्प "naming_strategy, uto_mapping" under "doctrine.orm" सुंदर मूर्खतापूर्ण मुझे यह समझ में नहीं आया। लेकिन एक त्वरित खोज ने मुझे यहां बताया। धन्यवाद! –

3

आप CLI चलाने के लिए एक console.php फ़ाइल का उपयोग कर रहे हैं, तो आप इसे वहाँ डाल सकता है।

<?php 

//something... 

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

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

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

//something else...