2012-06-16 7 views
5

Я пытаюсь определить свои маршруты, используя аннотации в symfony2. Имя моего пакета - PatentBundle. Но я получаю ошибкуМаршрутизация Symfony2 с аннотациями

No route found for "GET /portfolio/ 

мое приложение/Config/routing.yml

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

Мой контроллер портфель выглядит как

<?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

Вы получаете «/ портфолио /» маршрут в маршрутизаторе: debug? Или просто «/ портфолио»? Маршрут/портфолио/"отличается от"/портфеля ". – sensorario

+0

Что добавить без задней черты? '/ porfolio'? –

+0

Он дает ту же ошибку и для обоих –

ответ

9
# app/config/routing.yml 

MunichInnovationGroupPatentBundle: 

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

Контроллер должен иметь:

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

Я хочу импортировать весь каталог контроллера не только по умолчанию. Я получаю ошибку в контроллере портфеля –

+0

Спасибо за раздел «Контроллер должен иметь:». Вы должны включить все эти, даже если они не используются. – mattalxndr

+0

Есть ли способ указать @Method на уровне класса? – hardik

1

Если вы находитесь в среде Developement проверить импортирования routing.yml в routing_dev.yml:

# app/config/routing_dev.yml 

_main: 
    resource: routing.yml 
+0

Я уже сделал это, но не работал –

+0

Ваш код будет работать ... Как предложил Simone Demo Gentili, вы должны увидеть все свои активные маршруты, используя 'app/console router: debug', что является результатом? –

+0

Я проверил его через aap/console, и у меня есть два пакета 1 - Bundle, а другой - PatentBundle. Bundle также имеет портфолио, и его путь - v1/портфолио, я хочу сделать маршруты PatentBundle не другими. –

-2

Добавьте следующий код в пачке MunichInnovationGroup/PatentBundle/Resources/config/routing.yml

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

Выше всего лишь пример расслоения , Вам нужно только опубликовать жирный текст «требования».

Смежные вопросы