Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

$this->forward() apuntando a carpeta externa

13 de diciembre de 2013

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

#1

@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 llamada HelloController dentro de un paquete llamado AcmeHelloBundle y que después ejecute el método indexAction().

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

17 diciembre 2013, 22:34