zend frmawork 1 在插件中设置视图的变量值

zend frmawork 1 set variable value of view in plugin

控制器文件

 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 值? 如何更改插件中的视图变量? 感谢您的帮助....

如果我没记错的话,视图已经在方法 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  
{
    ...
}