मेरी सिद्धांत इकाई है, जो मेरी फार्म के लिए data_class
है में मैं एक फ़ाइल संपत्ति इस तरह परिभाषित किया गया है:गैर खाली फ़ाइल इनपुट क्षेत्र
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
इसके अलावा, ->add('file', 'file')
के साथ प्रकार के रूप में यह जोड़ा ...
निर्माण इकाई सही काम करती है, लेकिन समस्या तब होती है जब मैं इस इकाई को अद्यतन करने के लिए फॉर्म का उपयोग करता हूं। यह फ़ाइल को फिर से पूछता है, क्योंकि इसमें @Assert \ NotBlank है। चूंकि मेरे पास इस फॉर्म में अन्य फ़ील्ड हैं, इसलिए मैं प्रत्येक अपडेट पर छवि को फिर से अपलोड नहीं करना चाहता हूं।
जब मैं @Assert \ NotBlank को हटाता हूं, सदाबहार ठीक काम करता है, लेकिन मैं चाहता हूं कि यह फ़ाइल फ़ील्ड अनिवार्य हो।
कोई विचार?
धन्यवाद, जिसने मुझे विचार दिए, निश्चित रूप से :) मुझे समझ में नहीं आता कि आपको किसी अन्य की आवश्यकता क्यों है, बूलियन अपडेट करें, और यह मान कैसे सेट किया जाता है? मैंने चेक किया 'अगर (शून्य! == $ यह-> getId()) '। आप मेरी जिस्ट https://gist.github.com/3066507 देख सकते हैं। यह सिम्फनी 2.0 में भी फैंसीर था जब आप सत्यापनकर्ता https://gist.github.com/3066488 के संदर्भ में पास कर सकते हैं। एक बार फिर धन्यवाद। – umpirsky
ओह, अच्छा बिंदु। इकाई आईडी को शून्य के साथ तुलना करके आप निश्चित रूप से कह सकते हैं कि ऑपरेशन "एड" या "अपडेट" है या नहीं। और दूसरी जिंद मुझे लगता है कि एकदम सही समाधान है :) –
हाँ, बहुत बुरा उन्होंने ExecutionContext को बंद कर दिया और कक्षा के बाहर से संपत्ति पथ सेट करना संभव नहीं है https://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky