我试图在我附加到的事件期间将变量分配给我的视图渲染器render event
并且它不产生值。
我有一个事件,我附加到render event
我的Application Module
. 我也有在render event operation
This is a Zend Framework 3 Application 期间调用的方法,但是我标记了 Zend Framework 2 以获得更多曝光,因为该框架非常新。这里是
namespace Application;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$app = $e->getParam('application');
$app->getEventManager()->attach('render', array($this, 'setAssignRouteVariables'));
}
public function setAssignRouteVariables(MvcEvent $e)
{
$matches = $e->getRouteMatch();
$action = $matches->getParam('action');
$controller = $matches->getParam('controller');
$designHandler = $e->getApplication()->getServiceManager()->get('DesignHandler');
$designHandler->getPhprenderer()->controllerName='testcontroller';
$designHandler->getPhprenderer()->actionName='testaction';
}
}
如果您看,我正在getPhprenderer()
使用DesignHandler
该类调用该方法。此方法返回一个\Zend\View\Renderer\PhpRenderer
. 无论如何,在此之后我将变量分配给渲染器对象。
在此之后,in my layout - application/view/layout/layout.phtml
我这样做:
<script type="text/javascript">
var currentController = '<?php echo $this->controllerName;?>';
var currentAction = '<?php echo $this->actionName;?>';
</script>
我进入blank values
这个。
我在这里做错了什么?
这是当前的结果:
<script type="text/javascript">
var currentController = '';
var currentAction = '';
</script>