【发布时间】:2013-12-17 05:14:46
【问题描述】:
我看过很多关于这个的帖子,但我不明白我做错了什么。
services.yml:
parameters:
services:
bar.menu_builder:
class: Foo\BarBundle\Menu\MenuBuilder
arguments: [ @security.context ]
菜单生成器:
namespace Foo\BarBundle\Menu;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Knp\Menu\FactoryInterface;
class MenuBuilder {
protected $securityContext;
protected $isLoggedIn;
public function __construct(SecurityContextInterface $securityContext) {
$this->securityContext = $securityContext;
$this->isLoggedIn = $this->securityContext->isGranted('IS_AUTHENTICATED_FULLY');
}
// other methods
}
但是没有通过SecurityContext,因为我得到了这个异常:
ContextErrorException:可捕获的致命错误:传递给 Foo\BarBundle\Menu\MenuBuilder::__construct() 的参数 1 必须实现接口 Symfony\Component\Security\Core\SecurityContextInterface,没有给出
有什么想法吗?
【问题讨论】:
-
只是出于好奇,因为我已经多次看到此错误并且每次都是导致此错误的相同问题,您如何检索 bar.menu_builder 服务?你能给我们一个相关代码的sn-p吗?