create - templates symfony 3
Error de inserciĆ³n del controlador Symfony: El controlador para URI "/_fragment" no es llamable (2)
Estoy llamando a un render como así en mi plantilla Twig (línea 18)
{{ render(controller(''AcmeReadingBundle:Default:newAction'')) }}
Y el controlador es
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(),
));
}
Y el archivo new.html.twig es
{{ form(form) }}
Sigo recibiendo este error:
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.
Estoy de acuerdo con @nifr ¡Estás intentando renderizar una plantilla (''... new.html.twig'') usando el controlador () en lugar de un controlador / acción!
cambia tu función de render a:
{{render (controller (''AcmeReadingBundle: Predeterminado: nuevo''))}}
(aviso: no "... Acción" en el nombre del método)
A continuación hay más si la solución anterior no le da solución.
- Compruebe si una función definida en el controlador es una función pública. En mi caso lo he definido protegido.
Gracias,
Anirudh Sood.
Solución:
¡Está intentando renderizar una plantilla (''... new.html.twig'') usando el controller()
lugar de un controlador / acción !
cambia tu función de render
a:
{{ render(controller(''AcmeReadingBundle:Default:new'')) }}
( aviso : no "... Acción" en el nombre del método)
Propina:
La excepción _fragment se produce principalmente si hay algún error con el nombre del controlador especificado.
es decir, la ortografía del nombre del controlador / acción es a menudo la razón de esta excepción.
Otras lecturas:
Echa un vistazo a este artículo de libro de cocina .