सिम्फनी 2.7 से पहले, attr
choice
फ़ील्ड के लिए मान केवल फ़ील्ड पर ही लागू होता है, यानी <select>
तत्व प्रदान किया गया था। मैंने इस तत्व को कक्षाओं को स्टाइल करने के लिए इसे लागू करने के लिए इसका इस्तेमाल किया।मैं अपने पसंद क्षेत्र के सभी विकल्पों में एटीआर लगाने से कैसे बच सकता हूं?
सिम्फनी 2.7 में यह व्यवहार बदल दिया गया था। अब, <option>
<select>
तत्व के बच्चों को भी वही गुण (commit of the change) और इसलिए कक्षाएं मिलती हैं।
कुछ स्पष्टीकरण के लिए, इस कोड रहने दो:
<?php echo $view['form']->widget($form['myField'], ['attr' => ['class' => "text ui-widget-content ui-corner-all"]]); ?>
फिर इस Symfony < के उत्पादन = 2.6 है:
<select class="text ui-widget-content ui-corner-all" name="myField">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
और यह Symfony का उत्पादन होता है> = 2.7:
<select class="text ui-widget-content ui-corner-all" name="myField">
<option value="1" class="text ui-widget-content ui-corner-all">Option 1</option>
<option value="2" class="text ui-widget-content ui-corner-all">Option 2</option>
</select>
मेरे द्वारा लागू कक्षाएं <option>
तत्वों के लिए उपयुक्त नहीं हैं क्योंकि वे सीमाओं को परिभाषित करते हैं और वास्तविक क्षेत्र की तरह हैं। ध्यान दें कि ये jQuery UI द्वारा परिभाषित कक्षाएं हैं इसलिए मैं उनकी परिभाषा को आसानी से बदल नहीं सकता।
सबसे आसान तरीका है, जबकि अभी भी <select>
तत्व को लागू करने से एक choice
क्षेत्र के सभी <option>
तत्वों को इन कक्षाओं में लागू करने से बचने के लिए क्या है?
शायद यह एक बग है। क्योंकि मुझे इसके लिए UPGRADE-2.7 में कुछ भी नहीं मिला, और यह कार्यक्षमता वह है जो 'choice_attr' विकल्प को करना है। – user2268997
@ user2268997 हां, मुझे कुछ भी नहीं मिला लेकिन मुझे जो कोड मिला वह देखकर मुझे बहुत जानबूझकर लगता है। – Chris
मुझे php टेम्पलेट्स के बारे में बहुत कुछ पता नहीं है, लेकिन ऐसा लगता है कि 'attr' को '$ पसंद' से हल किया गया है जो 'ChoiceView' उदाहरण है, जिसे' DefaultChoiceListFactory' द्वारा बनाया गया है, और 'choice_attr' विकल्प पास हो गया है 'चॉइसटाइप' परिभाषा में उस कारखाने के लिए। (यदि आप अपनी 'चॉइसलिस्ट' की आपूर्ति नहीं करते हैं) – user2268997