2
A
回答
4
在你的控制器嘗試
public function preDispatch()
{
if($this->getRequest()->getActionName() === 'actionName') {
return; // ignoring preDispatch
}
// run preDispatch code when not actionName
}
任何控制器動作被稱爲MVC中的請求生命週期之前,preDispatch方法被調用。因此,您不能從個別操作中禁用preDispatch。
您可以在您的控制器內創建一個屬性,或者在preDispatch方法中創建一個變量,在該方法中,您可以在不需要執行任何操作的情況下放入操作名稱(不包含Action後綴)。在上面的示例代碼中,您不會針對一個操作名稱而是針對操作名稱列表進行測試,可能會使用in_array。
見http://devzone.zend.com/article/11978-Zend-Framework-MVC-Request-Lifecycle
相關問題
- 1. zend predispatch layoutloader
- 2. Zend Framework 2.3轉換忽略手動setLocale() - 可能的gettext問題
- 3. Zend Framework - 插件
- 4. Zend _forward()在preDispatch()中不起作用?
- 5. preDispatch Zend框架2不工作
- 6. Zend Framework - 如何對所有控制器進行preDispatch?
- 7. 如何在Zend Framework中執行preDispatch轉發?
- 8. 忽略特定列的tablesorter
- 9. PHPUnit是否忽略Zend Framework 2中的config/autoload/...文件?
- 10. git忽略Zend Framework中的供應商目錄2
- 11. Zend Framework HTTPS URL
- 12. Zend Studio Zend Framework
- 13. 在Zend Framework中忽略重複使用INSERT IGNORE 2
- 14. 忽略特定屬性
- 15. Git Subtree特定忽略
- 16. Pylint忽略特定名稱
- 17. 忽略特定HTML類preg_match_all
- 18. Bjam:忽略特定庫
- 19. 忽略特定通知
- 20. Git忽略特定文件
- 21. Zend Framework的錯誤與ACL
- 22. gitignore不會忽略opencv2.framework
- 23. 配置Zend Framework忽略其他目錄並在子目錄中工作?
- 24. 使用PHP_CodeSniffer忽略特定警告
- 25. ffmpeg + PHP + Zend Framework
- 26. Zend Framework 11.1.9執行兩次的動作
- 27. Zend Framework中基於動作的導航
- 28. Zend Framework vs Zend Framework 2
- 29. Zend Framework移動版
- 30. Django的syncdb忽略特定的模型
難道我們沒有任何建立與Zend,可能類似於 1.Blockpredispatch()可以在任何方法中添加。或 2.在preDispatch方法本身,我們可以有一個'nopredispatchaction'數組。 現在我正在通過在我的控制器中編寫一個自定義函數來處理這個問題,並在ControllerName&actionName作爲參數的情況下調用predispatch()中的函數。 – user274383 2010-03-19 06:16:07
沒有爲此目的內置的東西。 nopredispatchaction陣列的方法聽起來對我來說完全有效,您當前的方法也是如此。我可能不會將自定義方法放置在控制器中,但可以將其設置爲動作助手,以便您可以在任何控制器中重複使用它。 Action助手可以在preDispatch中調用。 – Gordon 2010-03-19 08:06:34
嗨戈登, 感謝您的答覆。我做了一些研究,發現ZF中沒有任何內置功能。 其次,在actionhelpers上,我沒有把它放在動作助手下,我已經做了,我創建了一個applicationController(Zend_Controller_Action),並從我的應用程序控制器中擴展了我的應用程序控制器的其餘部分。這個應用程序控制器擁有所有我的其他控制器通用的功能。 儘管我對ZF有點新手,但是會在幾天內克服它:) – user274383 2010-03-22 06:39:12