gpt4 book ai didi

model-view-controller - Symfony,只能通过转发访问的操作

转载 作者:行者123 更新时间:2023-12-04 08:24:58 26 4
gpt4 key购买 nike

是否可以防止直接访问 symfony 中的操作。该 Action 只能通过“转发”访问。所以基本上,一种查看请求是否来自另一个 Action 的方法。

我正在尝试实现这一点,因为第一个操作处理了大量验证,然后如果它失败,它会继续执行该操作。如果成功,它将转发到适当的操作;这个 Action 需要有安全的输入(从第一个 Action 开始验证)。为了保持代码 DRY,第二个操作不需要再次重新验证所有输入。

那为什么不简单地做一个私有(private)方法呢?第二个 Action 是一种插件,它从第一个 Action 中动态决定,该 Action 有自己的一组其他 future Action /模板。简单地转发而不是尝试处理 Symfony 已经处理的大量案例更有意义。

最佳答案

有多种方法可以实现这一目标。

1)确保路由无法访问您的操作。如果您有通配符路由,这将更难,但您始终可以添加一个路由,将您的操作的 url 指向 404 页面。将这样的内容添加到您的 routing.yml :

disabled_action:
url: /disabledController/disabledAction
params: { module: default, action: error404 }

2)在执行你的 Action 时检查 Action 堆栈。操作堆栈让您知道您是从哪个操作重定向的。您可以使用 $this->getController()->getActionStack() 在您的操作中访问它.如果 getSize()大于 1 (在默认配置中)你我们被转发。

关于model-view-controller - Symfony,只能通过转发访问的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530330/

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