保护方法,致命错误,__construct() 必须实现接口
Secure a method, Fatal error, __construct() must implement interface
我是 Symfony 的新手,所以,如果我问一个新手问题,我非常抱歉,但是我有一个生产服务 运行,现在一切都在下降,所以试图热修复这个问题。
我需要为代码的特定部分添加安全性,因此
我加了
if (true === $this->authorizationChecker->isGranted('ROLE_ADMIN'))
在我的代码中遵循此处提供的文档:https://symfony.com/doc/2.8/security/securing_services.html
我的整个代码看起来像这样:
<?php
namespace SUP\SupervisorBundle\Controller;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
...
class AutoCompleteController extends Controller
{
protected $authorizationChecker;
public function __construct(AuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
但不知为何,我得到了一个 Catchable Fatal Error: Argument 1 passed to SUP\SupervisorBundle\Controller\AutoCompleteController::__construct() must implement interface Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface, none given, called in sup/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php on line 186 and defined
我真的不明白哪里出了问题,任何帮助将不胜感激。
您似乎没有注入 AuthorizationCheckerInterface 的实例。
你在使用自动装配吗?您的服务是如何定义的?您是否尝试过从容器中检索服务而不是注入它(尽管注入是可行的方法)? http://symfony.com/doc/2.8/service_container.html
似乎实现此目的的方法是 而不是 添加
protected $authorizationChecker;
public function __construct(AuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
而不是
$this->authorizationChecker->isGranted('ROLE_ADMIN')
我用过
$this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')
我是 Symfony 的新手,所以,如果我问一个新手问题,我非常抱歉,但是我有一个生产服务 运行,现在一切都在下降,所以试图热修复这个问题。
我需要为代码的特定部分添加安全性,因此
我加了
if (true === $this->authorizationChecker->isGranted('ROLE_ADMIN'))
在我的代码中遵循此处提供的文档:https://symfony.com/doc/2.8/security/securing_services.html
我的整个代码看起来像这样:
<?php
namespace SUP\SupervisorBundle\Controller;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
...
class AutoCompleteController extends Controller
{
protected $authorizationChecker;
public function __construct(AuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
但不知为何,我得到了一个 Catchable Fatal Error: Argument 1 passed to SUP\SupervisorBundle\Controller\AutoCompleteController::__construct() must implement interface Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface, none given, called in sup/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php on line 186 and defined
我真的不明白哪里出了问题,任何帮助将不胜感激。
您似乎没有注入 AuthorizationCheckerInterface 的实例。
你在使用自动装配吗?您的服务是如何定义的?您是否尝试过从容器中检索服务而不是注入它(尽管注入是可行的方法)? http://symfony.com/doc/2.8/service_container.html
似乎实现此目的的方法是 而不是 添加
protected $authorizationChecker;
public function __construct(AuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
而不是
$this->authorizationChecker->isGranted('ROLE_ADMIN')
我用过
$this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')