如何在 Zend_framework 中不呈现响应的情况下发送保存的请求

Posted

技术标签:

【中文标题】如何在 Zend_framework 中不呈现响应的情况下发送保存的请求【英文标题】:How can I dispatch a saved request without rendering the response in Zend_framework 【发布时间】:2011-04-17 04:22:22 【问题描述】:

我想执行保存的请求。这就是我所做的。 我将一个请求对象序列化到数据库中,然后当用户激活他们的帐户时,我需要重播这个请求。 我用这种方式重放请求:

 $front = Zend_Controller_Front::getInstance();
 $front->returnResponse(true);
 $response = $front->dispatch($request); 

但这将始终将用户带到原始请求的页面,我不想这样做。我只想在没有用户通知的情况下在后端执行保存的请求。那么如何防止 front_controller 的 dispatch action 自动转发或渲染原始请求的响应呢?

我检查了 Zend 框架,它说,将 retureResponse 设置为 true,响应将被响应而不是显示。但它不是这样工作的。深入前端控制器,看来dispatcher直接派发请求了。

那么他们有什么好的解决方案可以在后端的zend框架中执行保存的请求对象吗?

谢谢

【问题讨论】:

【参考方案1】:

您必须等到现有请求结束后才能执行此操作。如果我的理解是正确的,这应该可以工作。

您决定何时运行存储的请求。

Zend_Registry::set('runStoredRequest', true);

然后在完成初始请求后(在引导程序的底部)在引导程序中添加以下内容:

if(Zend_Registry::get('runStoredRequest')) 
    /** RETRIEVE AND RUN STORED REQUEST **/

【讨论】:

【参考方案2】:

查看Zend_Test_phpUnit_ControllerTestCase::dispatch()。这听起来就像你想要做的。

【讨论】:

以上是关于如何在 Zend_framework 中不呈现响应的情况下发送保存的请求的主要内容,如果未能解决你的问题,请参考以下文章

Jsp 视图页面在 Spring Boot 中不呈现。如何解决?

如何在响应呈现之前处理多个提交?

Ruby API响应视图:如何呈现JSON响应?

URL 命名在模板中不起作用

如何呈现响应式 Ext.form.TextArea

如何在 React js 中将 HTML 模板呈现为来自 json 的响应