2012-12-09 10 views
11

मैं एक ही ऑब्जेक्ट को "पूर्वावलोकन" करने के लिए उसी फॉर्म का उपयोग कर रहा हूं क्योंकि मुझे एक ही ऑब्जेक्ट को "संपादित/अपडेट" करना है। नियंत्रक मैं निम्नलिखित कोड है के लिए मेरे showAction() में:symfony2 फॉर्म अक्षम

$form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true)); 

इस कोड प्राथमिक विधि की महान काम करता है लेकिन subforms कि शामिल किए जाने से इस का हिस्सा बना रहे हैं की एक संख्या हैं। show.html.twig में ही एक उदाहरण है:

{% include 'TargetCommonBundle:Hours:hoursForm.html.twig' with { form: hours } %} 

दुर्भाग्य से, माता पिता फार्म पर read_only सेटिंग शामिल subforms के लिए झरना प्रतीत नहीं होता है। क्या इसे संभालने का कोई तरीका है?

+0

ऐसा लगता है कि read_only सबफॉर्म में ठीक काम करता है क्योंकि यह मुख्य रूप में करता है। यह सिर्फ इतना है कि मुख्य या उप-प्रारूपों में ड्रॉप-डाउन सूचियों में से कोई भी परिवर्तित होने से अक्षम नहीं है। किसी भी मदद की सराहना की। – Cosmtar

+0

क्या आप read_only वैरिएबल को कथन के साथ जोड़ सकते हैं? यानी: {फॉर्म: घंटों के साथ, read_only: read_only} – lifo

+0

आज़माएं: $ form = $ this-> createForm (नई SalesEntityType ($ इकाई), $ इकाई, सरणी ('अक्षम' => सत्य)); – Lighthart

उत्तर

14

प्रयास करें:

$form = $this->createForm(
    new SalesEntityType($entity), 
    $entity, 
    [ 'disabled' => true ] 
); 

देखें: विक्रेता/सिम्फोनी/सिम्फोनी/src/Symfony/घटक/प्रपत्र/CHANGELOG.md, पहली पंक्ति

+1

धन्यवाद लाइटथर्ट, जो एक चैंप की तरह काम करता था! – Cosmtar

2
// It is the way more fast to disabled a form 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->setDisabled(true); 
}