services create symfony controller render

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.

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