मुझे समूहों का उपयोग करके कई संबंधों के साथ धारावाहिक इकाई के साथ एक समस्या है। मुझे इस तरह से संबंधित इकाइयों को क्रमबद्ध करने में समस्या है। उत्पाद और संबंधित तत्व:संबंधों के साथ इकाइयों में JMSSerializerBundle serialization समूह
चलो कहते हैं कि मैं दो संस्थाओं करते हैं।
/**
*
* @Serializer\ExclusionPolicy("none")
*/
class Product {
/**
* Primary key
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*
* @Serializer\Groups({"list","details"})
* @Serializer\Type("integer")
*/
protected $id;
/**
* @Serializer\Groups({"list","details"})
* @Serializer\Type("string")
*/
protected $name;
/**
* @ORM\Column(name="description", type="string", length=4096, nullable=true)
*
* @Serializer\Groups({"details"})
* @Serializer\Type("string")
*/
protected $description;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="Madden\ProjectBundle\Entity\ProjectResource", mappedBy="project")
* @Serializer\Groups({"details"})
* @Serializer\Type("ArrayCollection<Element>")
*/
protected $details1;
/**
* Relation to project tasks
* @ORM\OneToMany(targetEntity="Madden\ProjectBundle\Entity\ProjectTask", mappedBy="project")
* @Serializer\Exclude()
* @Serializer\Type("ArrayCollection<Element>")
*/
protected $details2;
...
}
तत्व इकाई एक समान संरचना है:
/**
*
* @Serializer\ExclusionPolicy("none")
*/
class Element {
/**
* Primary key
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*
* @Serializer\Groups({"list","details"})
* @Serializer\Type("integer")
*/
protected $id;
/**
* @Serializer\Groups({"list","details"})
* @Serializer\Type("string")
*/
protected $name;
/**
* @ORM\Column(name="description", type="string", length=4096, nullable=true)
*
* @Serializer\Groups({"details"})
* @Serializer\Type("string")
*/
protected $description;
...
}
मेरे समस्या यह है कि जब मैं के साथ 'विवरण' समूह इकाई उत्पाद serializing कर रहा हूँ मैं सिर्फ आईडी तत्वों के क्रमानुसार करने चाहते हैं, लेकिन है आप इकाई को देखने के रूप में ने समान समूहों को उत्पाद के रूप में परिभाषित किया है (यदि मुझे तत्व वस्तु के विवरण की आवश्यकता होगी) क्योंकि मैं अपनी सभी संस्थाओं पर एकीकृत समूह चाहता हूं और 'product_details', 'element_details' जैसे सैकड़ों समूहों को रोकने से रोकता हूं।
वहाँ एक रास्ता eventualy क्रमबद्धता समूह को बदलने के लिए जब मैं संबंध या ऐसा ही कुछ की यात्रा है? हैंडलर शायद या ऐसा कुछ?
सादर और किसी भी मदद के लिए धन्यवाद
मैं 'product_detail' /' product_list' आदि समाधान का उपयोग किया है, और यह बहुत अच्छा था, क्योंकि आप हमेशा serialized क्या है पर पूरा नियंत्रण है। डाउनसाइड स्पष्ट रूप से है कि कई वर्गों को क्रमबद्ध करते समय कोड कितना वर्बोज़ होता है ... मैं 'xxx_part' /' xxx_details' के बजाय 'xxx_partial' /' xxx_full' का भी उपयोग करता हूं। – AdrienBrault
@AdrienBrault उत्तर के लिए धन्यवाद।हां मैं अभी उस समाधान का उपयोग कर रहा हूं लेकिन इसका नुकसान है - अगर समूहों में आम तौर पर उपयोग की जाने वाली इकाइयों में कई इकाइयां होती हैं तो समूह को प्रत्येक संबंधित इकाई में परिभाषित किया जाना चाहिए, शब्द समूह समूह एनोटेशन बहुत अधिक – mrMantir
[वर्चुअलप्रोपर्टी] के बारे में है (http://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty)? –