我希望ZF2大师可以帮助我一点点。我刚刚开始将我的一个项目从ZF1转换为ZF2,我偶然发现了一段我不知道如何在ZF2中重写它们的代码。这是问题所在。
我有一个用户查看所选博客帖子的页面。在同一页面中,我有一个视图助手,显示帖子的所有评论,如下所示:
<?php echo $this->comments($blog->id); ?>
当用户在表单中提交注释时,注释将通过getJSON函数(jQuery)传输到控制器。控制器将存储注释并返回true / false到getJSON函数,具体取决于它们的注释是否有任何问题。
接下来发生的事情是同一个控制器,并且假设回显视图帮助程序,用户将看到新提交的注释显示在同一页面内。在我的ZF1代码中,我能够通过在控制器中包含以下代码来实现此目的:
首先,在ZF1控制器中定义了一个preDispatch函数:
public function preDispatch() {
$this->session = new Zend_Session_Namespace('default');
if (!$this->session->view) {
$this->session->view = $this->view;
}
}
然后,在savecommentAction()中的某个地方,我只需要这样做:
echo $this->session->view->Comments();
用户视图中的评论将会更新。
有谁知道如何在ZF2中完成上述操作?我一直试图用ZM2找到一种方法用ViewModel做这个,但是我在过去的48小时里一直在摸不着头脑,我很快就会用尽头发。希望你们这些善良的人能帮助我弄清楚我错过了什么。
答案 0 :(得分:0)
如果你只是想从你的行动中运行评论视图助手,你可以从视图帮助管理器中获取它:
$this->getServiceManager()->get('ViewHelperManager')->comments()
更新: 抱歉,它的serviceLocator不是经理,请使用此代码
$this->getServiceLocator()->get('ViewHelperManager')->comments()