Php 在自定义Symfony ExceptionController中授予使用权限

Php 在自定义Symfony ExceptionController中授予使用权限,php,symfony,http-status-code-404,Php,Symfony,Http Status Code 404,我正在Symfony 2项目中创建自定义ExceptionController。我想提供关于用户是否登录的不同信息 在ExceptionController模板中允许(…)说不可能使用: 这个问题的原因是路由是在安全之前完成的。如果发生404错误,则不会加载安全层,因此,被授予()函数未定义。解决方案是在使用此功能之前添加以下检查: 这个描述让我很困惑。即使对于404错误,这也是一个解决方案吗?在404错误中,在显示错误之前不执行任何安全操作。因此,从来没有任何关于用户是否登录的信息。使用app

我正在Symfony 2项目中创建自定义ExceptionController。我想提供关于用户是否登录的不同信息

在ExceptionController模板中允许(…)说不可能使用

这个问题的原因是路由是在安全之前完成的。如果发生404错误,则不会加载安全层,因此,
被授予()
函数未定义。解决方案是在使用此功能之前添加以下检查:

这个描述让我很困惑。即使对于404错误,这也是一个解决方案吗?在404错误中,在显示错误之前不执行任何安全操作。因此,从来没有任何关于用户是否登录的信息。使用
app.user
应该如何改变这一点

我认为这仅仅是一个解决方案,用于安全信息可用的其他错误,如500等。但是,我想检查一下我是否弄错了:


用户信息可以在404页上使用吗?

在正常的循环过程中,路由被匹配,安全投票者被调用,然后用户对象被存储在应用程序中。请记住,即使是未登录的用户也有用户对象。如果应用程序中不存在此对象,则表示安全投票者不可用。因此,不,用户信息不能用于404页。
{% if app.user and is_granted('...') %}
    {# ... #}
{% endif %}