安全选民 - 500 错误
Security Voters - 500 error
根据 symfony 文档,当我尝试将 access_manager 注入选民时,我遇到了一个奇怪的错误。
bootstrap.php
$app['security.voters'] = $app->share(function ($app) {
return array(
new UserVoter($app['security.access_manager']),
new IncludeRolesVoter($app['security.access_manager'])
);
});
选民
class UserVoter extends Voter
{
const VIEW = 'v3.user_view';
const EDIT = 'v3.user_edit';
private $decisionManager;
public function __construct(AccessDecisionManagerInterface $decisionManager)
{
$this->decisionManager = $decisionManager;
}
错误
[Mon Jul 11 13:57:01.179118 2016] [:error] [pid 1201] [client 10.0.2.2:54292] PHP 256. {closure:/****/bootstrap.php:738-743}() /****/vendor/pimple/pimple/lib/Pimple.php:126
仅当我尝试注入在使用之前定义的访问管理器时才会发生错误。
服务 security.access_manager
依赖于 security.voters
。你有一个无限的依赖循环。
由于 security.access_manager
依靠选民做出决定,因此在您自己的选民中要求它是没有意义的。
根据 symfony 文档,当我尝试将 access_manager 注入选民时,我遇到了一个奇怪的错误。
bootstrap.php
$app['security.voters'] = $app->share(function ($app) {
return array(
new UserVoter($app['security.access_manager']),
new IncludeRolesVoter($app['security.access_manager'])
);
});
选民
class UserVoter extends Voter
{
const VIEW = 'v3.user_view';
const EDIT = 'v3.user_edit';
private $decisionManager;
public function __construct(AccessDecisionManagerInterface $decisionManager)
{
$this->decisionManager = $decisionManager;
}
错误
[Mon Jul 11 13:57:01.179118 2016] [:error] [pid 1201] [client 10.0.2.2:54292] PHP 256. {closure:/****/bootstrap.php:738-743}() /****/vendor/pimple/pimple/lib/Pimple.php:126
仅当我尝试注入在使用之前定义的访问管理器时才会发生错误。
服务 security.access_manager
依赖于 security.voters
。你有一个无限的依赖循环。
由于 security.access_manager
依靠选民做出决定,因此在您自己的选民中要求它是没有意义的。