Erreur d'intégration du contrôleur Symfony: le contrôleur pour URI "/ fragment" n'est pas appelable

je suis d'appeler un rendu comme dans mon template Twig (ligne 18)

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

et le contrôleur est

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

et le nouveau.HTML.twig fichier est

{{ form(form) }}

je reçois cette erreur:

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
demandé sur a53-416 2013-07-01 21:19:38

2 réponses

Solution:

vous essayez de rendre un template ( '...nouveau.HTML.twig') en utilisant controller() au lieu d'un contrôleur/action!

modifier render fonction :

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

(avis:"...Action" dans le nom de la méthode)


Astuce:

l'exception _fragment est généralement lancée s'il y a un problème avec le nom du contrôleur défini.

c'est à dire missspelling le contrôleur/nom d'action est souvent la raison de cette exception.


autres lectures:

regardez cet article du cookbook.

31
répondu nifr 2013-07-01 17:30:38

je suis d'accord avec @nifr Vous essayez de rendre un template ( '...nouveau.HTML.twig') en utilisant controller () au lieu d'un controller/action!

changez votre fonction de rendu en:

{{ render(controller('AcmeReadingBundle:valeur par Défaut:nouveau')) }}

(remarque: aucun "...Action" dans le nom de la méthode)

ci-dessous est plus si la solution ci-dessus ne vous donne pas la solution.

  1. Vérifier si une fonction définie dans le contrôleur est un à la fonction publique. Dans mon cas, j'ai défini que protégés.

Merci,

Anirudh Sood.

0
répondu Anirudh Sood 2017-09-11 12:49:08