我想访问存储在请求对象中的数据,但我不在操作范围内。
有办法获取这些数据吗?
最佳答案
这完全取决于你所在的层。
如果您在 View (模板、部分)中,则会自动填充一个名为 $sf_request
的变量。
如果您在其他地方,您可以通过以下方式使用上下文单例来获取它:sfContext::getInstance()->getRequest()
。这样做的问题是,如果由于某种原因尚未创建上下文,那么这将成为一个问题。您可以使用 sfContext::hasInstance() 来检查这一点,但如果没有上下文,那么显然您无法以这种方式获取请求。
您还可以使用 context.load_factories
上的监听器将请求实例注入(inject)到您需要的任何层/对象中。不过,这再次要求您使用它的层在触发该事件后执行此操作(例如,上下文已初始化)。
基本上,我在这里得到的是,不应该真正有理由访问 Controller 之外的请求:-)
关于php - 如何在 Symfony 中的操作之外访问 Request 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146775/