我是Zend的新手,对Zend Framework有疑问。我试图谷歌但没有得到正确的答案。
之前的开发人员在控制器
中做了类似的事情public function indexAction()
{
$abc = $this->view->abc;
}
我的问题是如何从控制器中的视图中分配内容?如果你能这样做,这是一项法律任务吗?
答案 0 :(得分:2)
虽然这确实是一种糟糕的方法,但我可以提供一个可行的解决方案。
我的猜测是,您之前的开发人员在调度周期的早期分配了一些视图属性,甚至可能在Bootstrap中,例如
// Bootstrap.php
protected function _initGlobalViewProperties()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->abc = 'abc';
}
虽然这样做确实没有问题,但不应依赖于向控制器提供资源的视图。更好的方法是创建一个可供所有控制器使用的应用程序资源。
在Bootstrap.php
...
protected function _initAbc()
{
$resource = 'abc'; // can be anything
$this->bootstrap('view');
$view = $this->getResource('view');
$view->abc = $resource;
return $resource; // adds resource into Application registry
}
并在您的控制器中......
$abc = $this->getInvokeArg('bootstrap')->getResource('abc');