поэтому я хочу реализовать функцию, которая может проверять, могут ли определенные роли получать доступ к маршруту (URL) или нет, используя SensioFrameworkExtraBundle @ Security & @ IsGranted отсюда https://symfony.com/doc/master/bundles/SensioFrameworkExtraBundle/annotations/security.html
и я использую Symfony 2.8
проблема в том, что когда я добавляю IsGranted в свой контроллер, я получаю это сообщение об ошибке
[Семантическая ошибка] Аннотация "@Sensio \ Bundle \ FrameworkExtraBundle \ Configuration \ IsGranted" в методе AppBundle \ Controller \ ProductController:: newAction () не существует или не может быть автоматически загружен в / home / lavin / мини-проект / src / AppBundle / Controller / (который импортируется из "/ home / lavin / mini-project / app /config / routing.yml ").
, поэтому я попытался найти какой-то открытый случай в переполнении стека, но какой-то ответ в другом потоке все еще сбивает меня с толку, чтобы решить эту проблему, например, в этой теме Создание пользовательскогоВалидатор требований для аннотации @Route в Symfony
и этот symfony2: проверка isGranted для маршрута
и этотмой код контроллера
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use AppBundle\Entity\Product;
use AppBundle\Entity\Category;
use AppBundle\Entity\Cart;
use AppBundle\Entity\CartProduct;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class ProductController extends Controller
{
/**
* @Route("/home")
*/
public function homeAction()
{
return $this->render('product/home.html.twig');
}
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
// replace this example code with whatever you need
return $this->render('default/index.html.twig', array(
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
));
}
/**
* @Route("product/new", name="product_new")
*
* @IsGranted("ROLE_SELLER")
*/
public function newAction(Request $request)
, поэтому я ожидал, что URL-адрес маршрутизатора "/ product / new" будет доступен пользователю, у которого есть ROLE_SELLER, а пользователь с ROLE_CUSTOMER не может открыть или получить к нему доступ, который