Zend framework2 Zend Framework 2-调用View Helper以在终端响应中重新渲染

Zend framework2 Zend Framework 2-调用View Helper以在终端响应中重新渲染,zend-framework2,viewhelper,Zend Framework2,Viewhelper,我希望ZF2大师能帮我一点忙。我刚刚开始将我的一个项目从ZF1转换为ZF2,我偶然发现了我的一段代码,我真的不知道如何在ZF2中重新编写它们。问题出在这里 我有一个页面,用户可以在其中查看选定的博客文章。在同一页面中,我有一个视图帮助器,它显示了帖子的所有注释,如下所示: <?php echo $this->comments($blog->id); ?> 然后,在savecommentAction()中的某个地方,我只需执行以下操作: echo $this->se

我希望ZF2大师能帮我一点忙。我刚刚开始将我的一个项目从ZF1转换为ZF2,我偶然发现了我的一段代码,我真的不知道如何在ZF2中重新编写它们。问题出在这里

我有一个页面,用户可以在其中查看选定的博客文章。在同一页面中,我有一个视图帮助器,它显示了帖子的所有注释,如下所示:

<?php echo $this->comments($blog->id); ?>
然后,在savecommentAction()中的某个地方,我只需执行以下操作:

echo $this->session->view->Comments();
用户视图中的注释将被更新


有人知道如何在ZF2中执行上述操作吗?我一直在试图找到一种在ZF2中使用ViewModel实现这一点的方法,但在过去的48小时里,我一直在挠头,我很快就没有头发可以抓挠了。希望你们中的任何人都能帮我弄清楚我缺少什么来完成这项工作。

如果您只想从操作中运行评论视图帮助程序,可以从视图帮助程序管理器获得它:

$this->getServiceManager()->get('ViewHelperManager')->comments()
更新: 抱歉,它的serviceLocator不是manager,请使用此代码

$this->getServiceLocator()->get('ViewHelperManager')->comments()

我只需添加JS注释,如果得到真实的响应,我会手动操作DOM来呈现新的注释(数据无论如何都在那里)-不需要让Web服务器呈现某些东西,我实际上认为这是最后的手段,因为每个用户的注释都被包装在许多HTML标记中。这就是为什么我首先创建了一个视图助手的主要原因之一,而视图助手所做的不仅仅是显示评论行,因为它将包括检索评论员的头像、姓名等。好吧,一个视图助手将是一个错误的方法。您只需执行请求,就有两个可能的响应1)false 2)呈现的html:)呈现的html只是一个呈现的html。我尝试将其放入控制器操作中,但getServiceManager()似乎没有显示在我的IDE中。如果我将ViewModel设置为Terminal mode,上述方法是否有效?更新了答案,“如果我将ViewModel设置为Terminal mode,上述方法是否有效”与Anks Exlord和Sam无关。我结合了你们两人的建议,使其有效。
$this->getServiceLocator()->get('ViewHelperManager')->comments()