2013-07-01 6 views
17

मैं एक तो मेरी टहनी टेम्पलेट में (लाइन 18)Symfony नियंत्रक embedd त्रुटि: यूआरआई के लिए "/ _fragment" नियंत्रक प्रतिदेय

{{ render(controller('AcmeReadingBundle:Default:newAction')) }} 

और नियंत्रक की तरह प्रस्तुत करना है फोन कर रहा हूँ नहीं है

public function newAction(Request $request) 
    { 
     $message = new Message(); 
     $form = $this->createFormBuilder($message) 
     ->add('body', 'text') 
     ->add('save', 'submit') 
     ->getForm(); 

     $form->handleRequest($request); 

     return $this->render('AcmeReadingBundle:Default:new.html.twig', array(
      'form' => $form->createView(), 
     )); 
    } 

और new.html.twig फ़ाइल

{{ form(form) }} 

मैं यह त्रुटि मिलती रहती है:

+०१२३५१६४१०६
An exception has been thrown during the rendering of a template ("The controller for URI "/_fragment" is not callable.") in AcmeReadingBundle:Default:show.html.twig at line 18. 

उत्तर

30

समाधान:

आप एक टेम्पलेट ('... new.html.twig') एक नियंत्रक/कार्रवाई के बजाय controller() का उपयोग कर प्रस्तुत करना करने की कोशिश कर रहे हैं!

परिवर्तन आपके render को समारोह:

{{ render(controller('AcmeReadingBundle:Default:new')) }} 

(नोटिस: विधि नाम पर नहीं "... क्रिया")


युक्ति:

_fragment निर्दिष्ट नियंत्रक नाम के साथ कुछ गलत होने पर अपवाद अधिकतर फेंक दिया जाता है।

यानी नियंत्रक/क्रिया नाम मिसस्पेलिंग अक्सर इस अपवाद का कारण होता है।


अतिरिक्त पठन:

this cookbook article पर एक नजर डालें।

+0

मैंने इस कोड के साथ कोशिश की और मुझे एक ही परिणाम मिल रहा है –

+0

नया एक्शन – nifr

+0

के बजाय खेद होना चाहिए मेरे नियंत्रक को कोड नमूना के रूप में नया एक्शन कहा जाता है। और मैं इसे AcmeReadingBundle की तरह कॉल कर रहा हूं: डिफ़ॉल्ट: क्रिया –

0

मैं @nifr से सहमत हूं आप नियंत्रक/क्रिया के बजाय नियंत्रक() का उपयोग कर टेम्पलेट ('... new.html.twig') प्रस्तुत करने का प्रयास कर रहे हैं!

परिवर्तन आपके समारोह प्रस्तुत करने के लिए:

{{प्रस्तुत करना (नियंत्रक ('AcmeReadingBundle: डिफ़ॉल्ट: नए'))}}

(सूचना: कोई विधि नाम में "... कार्रवाई")

Below is more if above solution is not giving you solution.

  1. चेक नियंत्रक में एक परिभाषित समारोह एक सार्वजनिक समारोह है यदि। मेरे मामले में मैंने संरक्षित किया है कि संरक्षित।

धन्यवाद,

अनिरुद्ध सूद।