控制器文件
class AController extends Model_BaseController
{
public function getCityAction()
{
$this->view->city = 'Ada';
}
}
插件文件
class Plugin_ConvertObjectPublic extends Zend_Controller_Plugin_Abstract
{
public function postDispatch($request)
{
$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
$view->newCity = strtoupper($view->city);
}
}
newCity变量传递给NULL值? 如何在插件中更改视图变量? 谢谢你的帮助......
答案 0 :(得分:0)
如果我没弄错的话,视图已经在方法postDispatch()
插件中形成。
您可以在AController
控制器中添加此方法。
显然,您的AController
控制器已经扩展了另一个控制器Model_BaseController
。
因此,您可以在控件Model_BaseController
中添加此方法,如下所示:
class Model_BaseController extends Zend_Controller_Action {
...
public function postDispatch()
{
$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
$view->city = strtoupper($view->city);
}
}
如果你想要一些控制器,你可以创建一个这样的中间控制器:
class BController extends Model_BaseController {
public function postDispatch()
{
$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
$view->city = strtoupper($view->city);
}
}
并且
class AController extends BController
{
...
}