【发布时间】:2021-10-21 11:48:36
【问题描述】:
我正在尝试将一个页面从注释转换为 PHP8 属性。
namespace App\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[IsGranted('ROLE_ADMIN')]
#[Route('/page')]
class PageController extends AbstractController
{
#[Route('/', name: 'page')]
public function index(): Response
{
return $this->render('page/index.html.twig', [
'controller_name' => 'PageController',
]);
}
}
IsGranted 属性似乎不起作用,因为该页面是可访问的,而不是 403 错误。另一方面,当转换为注释时,如下所示,它按预期工作。是否有我缺少的配置设置?
/**
* @IsGranted("ROLE_ADMIN")
*/
#[Route('/page')]
class PageController extends AbstractController
{
#[Route('/', name: 'page')]
public function index(): Response
{
return $this->render('page/index.html.twig', [
'controller_name' => 'PageController',
]);
}
}
#[Route]、#[Entity] 等其他属性有效,但安全属性似乎无效。
【问题讨论】:
-
你使用的是哪个版本的 symfony?
-
我正在使用 Symfony 5.3.6 和 Php 8.0.9
-
还有SensioFrameworkExtraBundle的版本?
-
sensio/framework-extra-bundle v5.6.1
标签: php symfony symfony5 symfony-security php-8