php – Zend Framework _forward到同一控制器内的其他动作

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Zend Framework _forward到同一控制器内的其他动作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如何转发到同一控制器内的其他操作,避免重复所有调度过程?

例:
如果我指向用户控制器认操作是indexAction()在这函数内我使用_forwad(‘list’)…但是所有的调度过程都重复了…我不这样做

什么是正确的方法

解决方法

@H_777_14@ 通常,您将安装路由以将用户重定向到正确的(认)操作,而不是索引操作(读取如何使用Zend_Router从给定路由重定向).但是你可以直接从控制器中手动完成所有操作(但这称为“编写黑客代码以实现某些脏东西”).

更改要渲染的“视图脚本”,然后调用您的操作方法….

// inside your controller...
public function indexAction() {
  $this->_helPEr->vieWrenderer('foo');  // the name of the action to render instead
  $this->fooAction();  // call foo action Now
}

如果您经常使用这个“技巧”,也许您可​​以编写一个在应用程序中扩展的基本控制器,它可以简单地使用如下方法

abstract class My_Controller_Action extends Zend_Controller_Action {
   PRotected function _doAction($action) {
      $method = $action . 'Action';
      $this->_helper->vieWrenderer($action);
      return $this->$method();   // yes,this is valid PHP
   }
}

然后从你的行动中调用方法……

class Default_Controller extends My_Controller_Action
   public function indexAction() {
      if ($someCondITion) {
         return $this->_doAction('foo');
      }

      // execute normal code here for index action
   }
   public function fooAction() {
      // foo action goes here (you may even call _doAction() again...)
   }
}

注意:这不是正式的方法,但它是一个解决方案.

脚本宝典总结

以上是脚本宝典为你收集整理的php – Zend Framework _forward到同一控制器内的其他动作全部内容,希望文章能够帮你解决php – Zend Framework _forward到同一控制器内的其他动作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。