आप अपनी इकाई के भीतर प्रीपेर्सिस्ट एनोटेशन का उपयोग करके ऐसा नहीं कर सकते हैं। आपके दृष्टिकोण के साथ समस्या यह है कि आप अपने मॉडल के भीतर इकाई प्रबंधक तक नहीं पहुंच सकते हैं, लेकिन आपको उसे अपनी ईमानदारी को बनाए रखने के लिए कहने की आवश्यकता होगी।
आप एक घटना श्रोता के रूप में इस्तेमाल कर सकते हैं सिद्धांत डॉक्स में विस्तार से बताया: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners
फिर आप prePersist घटना को सुनना, देखना प्रश्न में प्रकार की किसी भी संस्था कायम हैं और देखते हैं होने के लिए करता है, तो अपनी हालत है पूछता है कि सच। यदि ऐसा है, तो आप इकाई प्रबंधक को इकाई को अलग करने के लिए बता सकते हैं।
लेकिन मुझे लगता है कि आप notNull करने के लिए सामग्री की स्थापना और अशक्त करने के लिए सामग्री बदलने अगर लंबाई < 1. सही संस्थाओं जारी रहती है करने के लिए सुनिश्चित करना है कि द्वारा बहुत सरल कर सकता है आपके डोमेन तर्क का हिस्सा है और मैं ऐसा नहीं होता यह इकाई में या कुछ घटना श्रोता में। यदि आपके पास ऐसे कई श्रोताओं और स्थितियां हैं, तो आप कई जादुई बाधाओं के साथ खत्म हो जाते हैं, जिन्हें कोई नहीं जानता है।
ऊपर दिए गए दृष्टिकोण के अलावा आप एक मान्य() विधि लागू कर सकते हैं और जांच सकते हैं कि कुछ शर्तों को पूरा किया गया है या नहीं। वैध() सत्य होने पर आपका डोमेन तर्क केवल इकाई को बनाए रखेगा। एक और बेहतर तरीका है कि आपकी इकाई को सत्यापित करने के लिए symfony2 सत्यापनकर्ता का उपयोग करें और फिर तदनुसार कार्य करें।
धन्यवाद, मैं एक ईवेंट श्रोता बनाने की कोशिश करूंगा। – user1501227
दस्तावेज़ीकरण तक पहुंच प्रतिबंधित है, कृपया लिंक की जांच करें। मुझे मिलता है "आपके पास इस संस्करण तक पहुंच नहीं है।" –
आपके संकेत के लिए धन्यवाद। नया लिंक http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners है। मैंने तदनुसार मूल जवाब संपादित किया! – Sgoettschkes