2012-10-31 23 views
6

सिम्फनी फॉर्म घटक का उपयोग करके read-only फ़ील्ड को कैसे प्रस्तुत करना चाहिए?फॉर्म symfony2 केवल

$builder 
    ->add('descripcion','text',array('read_only' =>'true')) 
    ->add('pcompra','text',array('read_only' =>'true')) 
    ->add('pventa','text',array('read_only' =>'true')) 
    ->add('iva','text',array('read_only' =>'true')) 
    ->add('marca','text',array('read_only' =>'true')) 
    ->add('stock','text',array('read_only' =>'true')) 
    ->add('familia','text',array('read_only' =>'true')) 
    ->add('proveedor','text',array('read_only' =>'true')); 
} 
+0

यदि कोई उत्तर इस समस्या को हल करने का समाधान है, तो कृपया स्वीकृत के रूप में चिह्नित करें :) –

उत्तर

0

मुझे लगता है कि वे पाठ प्रकार नहीं होना चाहिए फमिलिया और proveedor अन्य संस्था को संबंधों हैं:

यह कैसे मुझे लगता है कि ऐसा करने के लिए कोई लाभ नहीं हुआ कोशिश कर रहा हूँ है। अपने प्रकार को कम करने का प्रयास करें या इकाई पर बदलें और जांचें कि यह काम करता है या नहीं।

7

आपने अपनी स्ट्रिंग को केवल स्ट्रिंग में ही घोषित किया है, इसे एक बूलियन होना चाहिए।

आसपास true

इस तरह उद्धरण निकालें:

->add('descripcion','text',array('read_only' => true)) 

सच है, उद्धरण चिह्नों के बिना।

3

read_only सिम्फनी 2.8 के बाद से हटा दिया गया है। तो कृपया इसके बजाय रीडोनली का उपयोग करें। और इस विशेषता के लिए बूलियन मान प्रदान

->add('','text',array('readonly' => true)) 
2

अद्यतन: Symfony 3.0 के बाद से, केवल पढ़ने के लिए मूल्य attr विकल्प में सेट किया जाना चाहिए। http://symfony.com/doc/2.8/reference/forms/types/form.html#read-only

अक्षम विकल्प का भी उपयोग किया जा सकता है।

+4

"अक्षम" और "रीडोनली" एक ही चीज़ नहीं हैं और इन्हें एक दूसरे के लिए उपयोग नहीं किया जा सकता !!! जबकि वे दोनों उपयोगकर्ता के समान तरीके से प्रस्तुत करते हैं, एक पठनीय क्षेत्र पोस्ट का हिस्सा होगा, जबकि एक अक्षम फ़ील्ड नहीं होगा। –

10

परंतु जवाब सब इस अपवाद के साथ खत्म पर Symfony 3:

Uncaught पीएचपी अपवाद Symfony \ घटक \ OptionsResolver \ अपवाद \ UndefinedOptionsException:। "विकल्प" read_only "मौजूद नहीं है

यह करने के लिए सही तरीके से मैदान पर attr संपत्ति का लाभ लेने के लिए है:

->add('descripcion', TextareaType::class, array(
    'attr' => array(
     'readonly' => true, 
    ), 
)); 
+0

उपरोक्त। इसके अलावा, मैं ईरान से भी हूं। क्या आपके पास टेलीग्राम खाता हो सकता है? मैं तुम्हें कुछ कहना चाहता हूँ। – Shafizadeh

+0

सलाम, यहां आप आर: @peyman_mohamadpour – Trix

0

मुझे कुछ ऐसा जोड़ने दें जो अन्य उत्तरों के साथ प्रबंधित करने में मदद नहीं करता है। क्षेत्र के रूप में उपचार लेकिन संस्करण को अक्षम करने के लिए "tweak" कई मामलों में काम कर सकता है। हालांकि, कुछ प्रारूपों में प्रस्तुत करना कम से कम मुश्किल है जो संस्करण को पूरी तरह से रोकते हैं (यानी, लेबल के रूप में प्रस्तुत करें)।

इसे कैसे हल करें? मैंने क्षेत्र को छुपा टाइप के रूप में परिभाषित करने के लिए किया है, और टेम्पलेट में, {{ form.vars.value.myfield }} या {{ item.myfield }} का उपयोग करके "आइटम" को इकाई ऑब्जेक्ट के रूप में लेना, जो भी आप सोच सकते हैं, किसी भी अन्य HTML तत्व के रूप में प्रस्तुत करना।