2015-04-02 7 views
11

निम्नलिखित संस्था के लिए मेरे पास है के मेटाडाटा पढ़ें:एक सिद्धांत इकाई संपत्ति

/** 
* ProductService 
* 
* @ORM\Table(name="sf_products_services") 
* @ORM\Entity(repositoryClass="Evo\BackendBundle\Entity\ProductServiceRepository") 
*/ 
class ProductService 
{ 
    [...] 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=150) 
    */ 
    protected $name; 

    [...] 

मैं $ नाम संपत्ति के "लंबाई" मूल्य कैसे पढ़ सकते हैं? मैंने पढ़ा है कि मैं सिद्धांत मेटाडाटा का उपयोग कर सकता हूं, लेकिन मुझे इसका उपयोग कैसे करें और इन डेटा को कैसे पढ़ा जाए इसके बारे में कुछ भी नहीं मिला।

+0

हाय @VaN मेरा या किसी जवाब को हल किया है, तो अपने प्रश्न कृपया पर विचार [इसे स्वीकार] (http://meta.stackexchange.com/q/5234/179419) चेक-मार्क पर क्लिक करके। यह व्यापक समुदाय को इंगित करता है कि आपको समाधान मिला है और उत्तर देने वाले और स्वयं दोनों को कुछ प्रतिष्ठा देता है। ऐसा करने का कोई दायित्व नहीं है। – Matteo

उत्तर

24

अकॉर्डियन में के रूप में जानकारी मेटाडाटा च ollow:

$doctrine = $this->getContainer()->get("doctrine"); 
    $em = $doctrine->getManager(); 

    $className = "Evo\BackendBundle\Entity\ProductService"; 

    $metadata = $em->getClassMetadata($className); 

    $nameMetadata = $metadata->fieldMappings['name']; 

    echo $nameMetadata['type']; //print "string" 
    echo $nameMetadata['length']; // print "150" 

आशा इस मदद

6

getClassMetadata (मिश्रित $ className) एक वर्ग के लिए ORM मेटाडाटा वर्णनकर्ता रिटर्न

जैसे

$metadata = $entityManager->getClassMetadata($className); 

"वर्ग के नाम (एक प्रमुख बैकस्लैश के बिना पूरी तरह से योग्य वर्ग के नाम होना चाहिए के रूप में यह है get_class ($ obj)) या एक aliased वर्ग के नाम से लौटे उदाहरण:। MyProject \ डोमेन \ उपयोगकर्ता बिक्री: @wonde जवाब आप की जानकारी पढ़ सकते हैं आप सिद्धांत के माध्यम से की जरूरत के साथ PriceRequest "

+0

यह इकाई मेटाडेटा को पढ़ेगा, न कि संपत्ति की। गुणों को प्राप्त करने के लिए – VaN

+0

$ मेटाडाटा-> फ़ील्ड मैपिंग ['name'] का उपयोग करें – wonde

संबंधित मुद्दे