我需要在触发事件中呈现一个phtml文件。
我的代码是:
class Module
{
//...
public function onBootstrap(MvcEvent $e) {
$app = $e->getApplication ();
$sem = $app->getEventManager ()->getSharedManager ();
$sem->attach ( 'Events', 'onExampleEvent', function ($e) {
return 'html...';
} );
}
//...
}
如何用渲染的phtml文件替换html...
?
答案 0 :(得分:2)
要渲染您的phtml文件,您必须执行以下几个步骤:
创建一个可容纳变量容器的ViewModel对象。如果你需要一些变量,只需将它们作为数组传递。
$content = new \Zend\View\Model\ViewModel(array('article' => $article));
指定要与setTemplate一起使用的模板。
以下编辑的代码符合您的需求
class Module
{
//...
public function onBootstrap(MvcEvent $e) {
$app = $e->getApplication ();
$sm = $app->getServiceManager();
$sem = $app->getEventManager ()->getSharedManager ();
$sem->attach ( 'Events', 'onExampleEvent', function ($e) {
$content = new \Zend\View\Model\ViewModel();
$content->setTemplate('your/template.phtml');
return $sm->get('ViewRenderer')->render($content);
});
}
//...
}
Doc:http://framework.zend.com/manual/2.0/en/modules/zend.view.quick-start.html