我正在尝试从 Symfony 2.1 迁移到 2.2.1 版本。我使用自己的选民来决定是否授予用户访问给定路线的权限。Voter 非常简单,并且在更新之前就可以使用。问题是选民需要请求服务来获取检查用户是否可以访问站点所需的参数(它是路由中给出的一些 id,例如 /profile/show/{userId})。我总是检查请求范围是否处于活动状态,以防止在使用 CLI 或 PHPUnit 时出错:
$this->request = null;
if ($container->isScopeActive('request')) {
$this->request = $container->get('request');
}
如果 Vote 方法中没有请求,则稍后抛出异常:
if ($this->request === null) {
throw new \RuntimeException("There's no request in ProfileVoter");
}
每次投票后我都会收到此异常(= 在我的应用程序的每个页面上)。
编辑:它只发生在开发环境中。