Php 在Zend Framewok插件中,如何模拟$this->;视图->;foo=。。。;?
我写了一个小插件,所以我可以在每个视图中获得控制器的名称。 但是idk如何“传递”一个参数到视图(像$this->view->foo=…;这样做)Php 在Zend Framewok插件中,如何模拟$this->;视图->;foo=。。。;?,php,zend-framework,Php,Zend Framework,我写了一个小插件,所以我可以在每个视图中获得控制器的名称。 但是idk如何“传递”一个参数到视图(像$this->view->foo=…;这样做) 我可以写什么来代替$this->view->controllerName,这样它就可以工作了?您可以使用助手代理来获取视图的实例。像这样的方法应该会奏效: Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->view->foo = 'bar';
我可以写什么来代替$this->view->controllerName,这样它就可以工作了?您可以使用助手代理来获取视图的实例。像这样的方法应该会奏效:
Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->view->foo = 'bar';
试试这个:
$view = Zend_Layout::getMvcInstance()->getView();
$view->controllerName = $request->getControllerName();
以这个例子为基础:
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();
}
}
它告诉我们一个致命错误:在第489行的C:\wamp\www\OutOfScopes\OutOfScopes\library\Zend\Controller\Action\Helper\ViewRenderer.php中调用未定义的方法stdClass::getscriptpath(),这是什么意思?(相关)
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();
}
}