it-swarm.com.de

Fehler beim Einbetten des Symfony-Controllers: Der Controller für URI "/ fragment" kann nicht aufgerufen werden

Ich rufe ein Render wie in meiner Twig-Vorlage (Zeile 18) auf.

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

Und der Controller ist

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(),
        ));
    }

Und die neue.html.twig-Datei lautet 

{{ form(form) }}

Ich bekomme immer diesen Fehler: 

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.
19
a53-416

Lösung:

Sie versuchen, ein template ('... new.html.twig') mit controller() anstelle eines Controllers/action zu rendern!

Ändern Sie Ihre render-Funktion in:

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

(Hinweis: keine "... Aktion" im Methodennamen)


Tipp:

Die Ausnahme _fragment wird meistens ausgelöst, wenn der angegebene Controller-Name fehlerhaft ist. 

d. h. die falsche Schreibweise des Controller-/Aktionsnamens ist häufig der Grund für diese Ausnahme.


Weiterführende Literatur:

Werfen Sie einen Blick auf diesen Kochbuchartikel .

32
nifr

Ich stimme mit @nifr Überein. Sie versuchen, eine Vorlage ('... new.html.twig') mit Controller () anstelle eines Controllers/einer Aktion zu rendern!

Ändern Sie Ihre Renderfunktion in:

{{render (Controller ('AcmeReadingBundle: Standard: neu'))}}

(Bemerkung: keine "... Aktion" im Methodennamen)

Unten ist mehr, wenn die Lösung Ihnen keine Lösung gibt.

  1. Prüfen Sie, ob eine definierte Funktion in der Steuerung eine öffentliche Funktion ist. In meinem Fall habe ich den Schutz definiert.

Vielen Dank,

Anirudh Sood.

0
Anirudh Sood