Zend Framework:布局脚本中的View变量始终为null

und*_*ack 0 model-view-controller layout zend-framework

我在someAction函数中设置了一个视图变量,如下所示:

$this->view->type = "some type";  
Run Code Online (Sandbox Code Playgroud)

当我在布局脚本中访问此变量时,如下所示:

<?php echo $this->type ?>
Run Code Online (Sandbox Code Playgroud)

它什么都不打印.怎么了?

我的application.ini设置与布局有关

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.layout.layout = "layout" ; changed 'default' to 'layout'
Run Code Online (Sandbox Code Playgroud)

编辑

该线程建议备用解决方案,但寻找上述问题的解决方案.这在Zend 1.6.2中有效.我刚刚升级到1.10并且它停止了工作.

编辑

如果我在任何_init Bootstrap函数中设置此视图var,它就可以工作.

opH*_*AME 7

如果你想为你的布局分配一些东西,你必须采取另一种方式:

// get the layout instance
$layout = Zend_Layout::getMvcInstance();

// assign fooBar as Name to the layout
$layout->name = 'fooBar';
Run Code Online (Sandbox Code Playgroud)