带注释的Symfony2路由

时间:2012-06-16 15:48:05

标签: symfony annotations

我正在尝试使用symfony2中的注释来定义我的路线。我的Bundle名称是PatentBundle。但是我收到错误

No route found for "GET /portfolio/

我的app / 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
    }

3 个答案:

答案 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;

答案 1 :(得分:1)

如果您在开发环境中,请检查您在路由dev.yml中导入routing.yml:

# app/config/routing_dev.yml

_main:
    resource: routing.yml

答案 2 :(得分:-2)

在您的软件包MunichInnovationGroup/PatentBundle/Resources/config/routing.yml

中添加以下代码
_admin_emailTemplate:
    pattern: admin/emailTemplate
    defaults: {_controller: DashboardEmailTemplateBundle:Default:index }
requirements: { _method: GET | POST }

以上只是捆绑的一个例子。您只需要发布粗体文字“要求”。

相关问题