2014-08-29 154 views
0

我读过关于这个主题的几个堆栈溢出帖子,他们提到在控制器中你可以使用$this->getServiceLocator()->get('HttpRenderer')或类似的东西。如何在Zend Framework 2中渲染视图(用于HTML电子邮件)?

但是,我无法获得HttpRenderer服务,根据引发异常的belw。我究竟做错了什么?

====================================================================== 
    The application has thrown an exception! 
====================================================================== 
Zend\ServiceManager\Exception\ServiceNotFoundException 
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for HttpRenderer 
---------------------------------------------------------------------- 
/var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:529 
#0 /var/opt/projects/MYAPP/web/module/Application/src/Application/Controller/CronController.php(53): Zend\ServiceManager\ServiceManager->get('HttpRenderer') 
#1 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractActionController.php(83): Application\Controller\CronController->mailAction() 
#2 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent)) 
#3 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent)) 
#4 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#5 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#6 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Console\Request), Object(Zend\Console\Response)) 
#7 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent)) 
#8 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent)) 
#9 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#10 /var/opt/projects/MYAPP/web/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(313): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#11 /var/opt/projects/MYAPP/web/public/index.php(30): Zend\Mvc\Application->run() 
#12 {main} 
====================================================================== 

回答

0

我需要以下:

$viewManager = $this->serviceLocator->get('ViewManager'); 

我可以再调用$viewManager->getViewRenderer()->render($viewModel)