Necesito encontrar la manera, de realizar un forward a un controlador que se encuentra en una carpeta externa a la de controladores del bundle.
He tratado de realizarlo de diferentes maneras pero de ninguna logro llegar a dicho controlador.
$response = $this->forward('MiBundle\Api\Subfolder\Controller\Test::index'); return $response;
Ejemplo:
MiBundle - Api - Subfolder - Controller - TestController.php (target del forward) - Controller - Entity - Form - Resources - Security - Services - Tests
¿Alguien puede darme una mano con esto?
Gracias.
Respuestas
@TerOZ_, siempre que hagas referencia a algún recurso que se encuentra dentro de un bundle, tienes que utilizar la denominada notación bundle. Este párrafo del capítulo de enrutamiento del libro de Symfony2 lo explica brevemente:
Observa la sintaxis utilizada para referirse al controlador:
AcmeHelloBundle:Hello:index
. Symfony2 utiliza esta notación corta para referirse a los controladores. Se trata de la sintaxis recomendada y le dice a Symfony2 que busque una clase controlador llamadaHelloController
dentro de un paquete llamadoAcmeHelloBundle
y que después ejecute el métodoindexAction()
.
Como el ejemplo que muestras utiliza rutas de archivos normales, no te va a funcionar. Lo que tienes que hacer es utilizar esa notación bundle, por lo que te quedaría algo así:
return $this->forward('MiBundle:Test:index');
@javiereguiluz