![](/img/trans.png)
[英]PreAuthorize annotation of Symfony2 JMSSecurityExtraBundle not working
[英]Symfony2 Route annotation on class not working
所以基本上我有一個要在其中綁定的控制器和一個路由前綴,因此我在類上使用@Route批注,我已經完成了Symfony2應用程序的所有其他控制器。 但是,這個沒有考慮前綴,因此只能訪問/ list上的頁面,而不是訪問/ admin / users / list上的頁面。
這是控制器:
<?php
namespace LanPartyOrg\UserBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use JMS\SecurityExtraBundle\Annotation\PreAuthorize;
/*
* @Route("/admin")
*
*/
class AdminController extends Controller
{
/**
* @Route("/list", name="users_list")
* @Template("LanPartyOrgUserBundle:Admin:List.html.twig")
*/
public function listAction(){
$em = $this->getDoctrine()->getManager();
$users = $em->getRepository('LanPartyOrgUserBundle:User')->findAll();
return array('users'=>$users);
}
}
這是我的routing.yml:
lan_party_org_user:
resource: "@LanPartyOrgUserBundle/Controller/"
type: annotation
prefix: /
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
謝謝你的幫助
必須將注釋添加到docblock中 ,而不僅僅是簡單的注釋。
您需要使用/**
而不是/*
來開始評論(注意請注意*
):
/**
* @Route("/admin")
*/
class AdminController extends Controller
{
// ...
}
這將為您的AdminController
的所有路由添加/admin
前綴。
您的以下代碼
/*
* @Route("/admin")
*
*/
應該是
/**
* @Route("/admin")
*
*/
並確保兩個控制器不應具有相同的前綴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.