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.
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.
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.
- 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.