我写了一个小插件,所以我将能够在每个视图中获取控制器的名称。 但是idk如何将一个参数“传递”到视图中(像$ this-> view-> foo = ...;那样求和。)
class Zend_Extension_Controller_Plugin_GetControllerName extends Zend_Controller_Plugin_Abstract
{
public function __construct()
{
}
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$this->view->controllerName = $request->getControllerName();
}
}
我能写什么而不是$ this-> view-> controllerName所以它会起作用?
答案 0 :(得分:1)
试试这个:
$view = Zend_Layout::getMvcInstance()->getView();
$view->controllerName = $request->getControllerName();
答案 1 :(得分:0)
您可以使用帮助程序代理获取视图的实例。这样的事情应该有效:
Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->view->foo = 'bar';
答案 2 :(得分:0)
以此为例:
class Plugin_Sidebar extends Zend_Controller_Plugin_Abstract {
public function postDispatch(Zend_Controller_Request_Abstract $request)
{
if($request->getModuleName() == 'admin')
{
return;
}
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
$viewRenderer->initView();
}
$view = $viewRenderer->view;
$Categories = new Model_DbTable_Categories();
$view->menuItens = $Categories->getMenu();
}
}