2012-06-16 15 views
5

Estoy tratando de definir mis rutas utilizando anotaciones en symfony2. Mi nombre de paquete es PatentBundle. Pero estoy consiguiendo un error deEnrutamiento Symfony2 con anotaciones

No route found for "GET /portfolio/ 

Mi aplicación routing.yml

MunichInnovationGroupPatentBundle: 
resource: "@MunichInnovationGroupPatentBundle/Controller/" 
type:  annotation 
prefix: /
defaults: { _controller: "MunichInnovationGroupPatentBundle:Default:index" } 

Mi controlador/config/cartera parece

<?php 
namespace MunichInnovationGroup\PatentBundle\Controller; 

use MunichInnovationGroup\PatentBundle\Entity\Log; 

use MunichInnovationGroup\PatentBundle\Entity\UserPatent; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Request; 
use JMS\SecurityExtraBundle\Annotation\Secure; 
use Symfony\Component\Security\Core\Exception\AccessDeniedException; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use MunichInnovationGroup\PatentBundle\Entity\SvPatents; 
use MunichInnovationGroup\PatentBundle\Entity\PmPortfolios; 
use MunichInnovationGroup\PatentBundle\Entity\UmUsers; 
use MunichInnovationGroup\PatentBundle\Form\PatentType; 
use MunichInnovationGroup\PatentBundle\Entity\PmPatentgroups; 
use Symfony\Component\Security\Core\SecurityContext; 
use MunichInnovationGroup\PatentBundle\Util\SecurityHelper; 
use Exception; 

/** 
* Portfolio controller. 
* @Route("/portfolio") 
*/ 
class PortfolioController extends Controller { 

/** 
* Index action. 
* 
* @Route("/", name="portfolio") 
* @Method({"GET", "POST"}) 
* @Template("MunichInnovationGroupBundle:Portfolio:show.html.twig") 
*/ 
public function indexAction(Request $request) { 
     // method code goes here 
    } 
+0

¿Obtiene la ruta "/ portfolio /" en el enrutador: depuración? ¿O simplemente "/ portfolio"? La ruta "/ portfolio /" es diferente de "/ portfolio". – sensorario

+0

¿Qué se agrega sin la barra al final? '/ porfolio'? –

+0

Da el mismo error en ambos –

Respuesta

9
# app/config/routing.yml 

MunichInnovationGroupPatentBundle: 

    resource: "@MunichInnovationGroupPatentBundle/Controller/DefaultController.php" 
    type:  annotation 
    prefix: /

El controlador debe tener:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
+0

Quiero importar todo el directorio del controlador no solo el controlador predeterminado. Recibo un error en el controlador de la cartera –

+0

Gracias por la sección "El controlador debe tener:". Debe incluir todos esos, incluso si no se están utilizando. – mattalxndr

+0

¿hay alguna forma de especificar @Method en el nivel de clase? – hardik

1

Si se encuentra en el entorno Desarrollos comprobar importar el routing.yml en routing_dev.yml:

# app/config/routing_dev.yml 

_main: 
    resource: routing.yml 
+0

Ya lo hice pero no funcionó –

+0

Tu código podría funcionar ... Como sugirió Simone Demo Gentili, deberías ver todas tus rutas activas usando 'app/console router: debug' ¿cuál es el resultado? –

+0

Lo revisé a través de aap/console y tengo dos bundles 1 es Bundle y el otro es PatentBundle. Bundle también tiene una ruta de cartera y su ruta es v1/portfolio, quiero hacer que las rutas de PatentBundle funcionen, no las demás. –

-2

Agregar siguiente código en su paquete MunichInnovationGroup/PatentBundle/Resources/config/routing.yml

_admin_emailTemplate: 
    pattern: admin/emailTemplate 
    defaults: {_controller: DashboardEmailTemplateBundle:Default:index } 
requirements: { _method: GET | POST } 

anterior es sólo un ejemplo de paquete . Solo debe publicar "requisitos" en negrita.