gpt4 book ai didi

symfony - 404页面无法使用安全组件?

转载 作者:行者123 更新时间:2023-12-02 14:14:37 26 4
gpt4 key购买 nike

我想要我的custom error pages使用我的主要应用程序基础模板。通过基本模板使用 KnpMenu 构建菜单。部分菜单仅针对特权用户呈现,为此我注入(inject)安全组件并进行如下检查:

if ($security->isGranted('ROLE_COURSES')) {

但是,当出现 404 时,在运行防火墙组件之前执行的路由组件中会引发异常。

我不完全确定实际注入(inject)到菜单生成器中的内容是因为安全组件尚未运行,但无论如何,当我尝试转到生产中不存在的页面时,我会遇到另一个异常if 语句被执行。

这里推荐的方法是什么?如果我必须放弃渲染 404 的菜单,我想那没关系,但我希望我仍然可以以其完整的形式渲染菜单。

最佳答案

我知道这是一个老问题,但面对这个问题,我自己通过创建一条匹配所有内容的额外路线来解决它,并且是我的路线的最后一个匹配:

pageNotFound:
pattern: /{path}
defaults: { _controller: MyContentBundle:PageNotFound:pageNotFound, path: '' }
requirements:
path: .*

Action 很简单:

public function pageNotFoundAction()
{
throw new NotFoundHttpException();
}

由于您从 Controller 抛出 NotFound 异常,因此防火墙已经运行,并且您的自定义 404 错误页面中现在有 app.user

关于symfony - 404页面无法使用安全组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com