Symfony2的路由与注解 [英] Symfony2 routing with annotations
本文介绍了Symfony2的路由与注解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图定义使用注解Symfony2的在我的路线。我的软件包名称为PatentBundle。但我得到的误差
未找到路径GET /组合/
我的应用程序/配置/ routing.yml中
MunichInnovationGroupPatentBundle:
资源:@ MunichInnovationGroupPatentBundle /控制器/
类型:注释
preFIX:/
默认值:{_controller:MunichInnovationGroupPatentBundle:默认:指数}
我的投资组合控制器看起来像
< PHP
命名空间MunichInnovationGroup \\ PatentBundle \\控制器; 使用MunichInnovationGroup \\ PatentBundle \\实体\\登录; 使用MunichInnovationGroup \\ PatentBundle \\实体\\ UserPatent;
使用的Symfony \\分量\\ HttpFoundation \\响应;
使用的Symfony \\分量\\ HttpFoundation \\请求;
使用JMS \\ SecurityExtraBundle \\注解\\安全;
使用的Symfony \\分量\\安全\\核心\\异常\\ AccessDeniedException异常;
使用的Symfony \\包\\ FrameworkBundle \\控制器\\控制器;
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\方法;
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\路线;
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\模板;
使用MunichInnovationGroup \\ PatentBundle \\实体\\ SvPatents;
使用MunichInnovationGroup \\ PatentBundle \\实体\\ PmPortfolios;
使用MunichInnovationGroup \\ PatentBundle \\实体\\ UmUsers;
使用MunichInnovationGroup \\ PatentBundle \\表格\\ PatentType;
使用MunichInnovationGroup \\ PatentBundle \\实体\\ PmPatentgroups;
使用的Symfony \\分量\\安全\\核心\\ SecurityContext的;
使用MunichInnovationGroup \\ PatentBundle \\的Util \\ SecurityHelper;
使用异常;/ **
*组合控制器。
* @Route(/组合)
* /
类PortfolioController扩展控制器{/ **
* Index操作。
*
* @Route(/,名字=组合)
* @method({GET,POST})
* @Template(MunichInnovationGroupBundle:投资组合:show.html.twig)
* /
公共职能的indexAction($申请要求){
//方法code到这里
}
解决方案
#应用程序/配置/ routing.yml中MunichInnovationGroupPatentBundle: 资源:@ MunichInnovationGroupPatentBundle /控制器/ DefaultController.php
类型:注释
preFIX:/
控制器应该有:
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\路线;
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\方法;
使用SENSIO \\包\\ FrameworkExtraBundle \\配置\\模板;
I am trying to define my routes using annotations in symfony2. My Bundle name is PatentBundle. But I am getting an error of
No route found for "GET /portfolio/
My app/config/routing.yml
MunichInnovationGroupPatentBundle:
resource: "@MunichInnovationGroupPatentBundle/Controller/"
type: annotation
prefix: /
defaults: { _controller: "MunichInnovationGroupPatentBundle:Default:index" }
My portfolio controller looks like
<?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
}
解决方案
# app/config/routing.yml
MunichInnovationGroupPatentBundle:
resource: "@MunichInnovationGroupPatentBundle/Controller/DefaultController.php"
type: annotation
prefix: /
The controller should have:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
这篇关于Symfony2的路由与注解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文