यह मेरी आधार/मूल इकाई है, सेटअप है ताकि उसके बच्चे अपनी टेबल का उपयोग कर रहे हों।क्या एक टेबल विरासत इकाई कक्षा तालिका विरासत इकाई का विस्तार कर सकती है?
/** * @ORM\Entity * @ORM\Table(name="layer_object") * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="discr", type="string") * @ORM\DiscriminatorMap({"service"="Service", "aircraft"="Aircraft", ...}) */ class LayerObject {}
विमान इकाई। एक साधारण बच्चा जो अच्छी तरह से कर रहा है
/** * @ORM\Entity * @ORM\Table(name="aircraft") */ class Aircraft extends LayerObject
सेवा इकाई। एक जटिल बच्चा, वह स्वयं एकल टेबल विरासत का उपयोग कर रहा है।
/** * @ORM\Entity * @ORM\Table(name="service") * @ORM\InheritanceType("SINGLE_TABLE") * @ORM\DiscriminatorColumn(name="discr", type="string") * @ORM\DiscriminatorMap({"ground"="Ground", "onboard"="Onboard"}) */ class Service extends LayerObject {}
सेवा इकाई
/** * @ORM\Entity */ class Ground extends Service {}
app/console doctrine:schema:validate
का एक बच्चा है कि एक एकल तालिका का उपयोग करना चाहिए कोई त्रुटि पाता है लेकिन app/console doctrine:schema:update --force
सिर्फ 'सेवा' तालिका उत्पन्न नहीं होगा, विरासत। ऐसा लगता है कि सेवा इकाई परिभाषा को अनदेखा किया जाता है।
निश्चित रूप से मैं इस तालिका के लिए एसक्यूएल बना सकता हूं, लेकिन आवेदन बढ़ेगा और किसी बिंदु पर मुझे माइग्रेशन का उपयोग करने की आवश्यकता होगी।
क्या कोई मुझे किसी दिशा में इंगित कर सकता है? धन्यवाद।
मिले एक नकली है, लेकिन कोई जवाब अब तक देखते हैं, देखें: Doctrine 2 multiple level inheritance
संपादित करें:
जब मैं 2 का स्तर बहुत (@ORM\InheritanceType("JOINED")
Service
इकाई के लिए) के लिए वर्ग तालिका विरासत का उपयोग यह बहुत काम करता है कुंआ। देखें: Doctrine2 Multiple level inheritance
बहुत बहुत धन्यवाद। इसका मूल रूप से अर्थ है: 'शीर्षस्थ कक्षा में एक बार अपना विरासत प्रकार चुनें और इसके साथ चिपके रहें'। अभी के लिए यह मेरे आवेदन के लिए ठीक है ... – virtualize