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

时间:2015-03-11 16:11:00

标签: zend-framework plugins

控制器文件

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

1 个答案:

答案 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  
{
    ...
}