我有兩個控制器共享他們的大部分代碼(但必須是不同的控制器)。 (對我來說,至少)明顯的解決方案是創建一個類,並使兩個控制器繼承它。事情是......放在哪裏?現在我已經在app_controller.php中,但它有點混亂。將CakePHP中的控制器父類放在哪裏?
4
A
回答
9
在蛋糕中,組件用於存儲可由多個控制器使用的邏輯。該目錄是/ app/controllers/components。例如,如果您有一些可共享的實用程序邏輯,您可能會有一個名爲UtilComponent的對象和一個名爲UtilComponent.php的/ app/controlers/components中的文件。
<?php
class UtilComponent extends Object {
function yourMethod($param) {
// logic here.......
return $param;
}
}
?>
然後,在你的控制器類,你可以這樣:
var $components = array('Util');
然後調用類的方法:
$this->Util->yourMethod($yourparam);
更多信息:
4
順便說一句,如果「他們必須是單獨的控制器」的原因是你需要的URL。請記住,您可以使用路由:
Router::connect('/posts', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));
相關問題
- 1. 把根控制器放在哪裏?
- 2. 將.NET中的HttpHandler類放在哪裏?
- 3. 將CakePHP項目中的自定義類和第三方類放在哪裏?
- 4. 我應該在哪裏將控制器代碼放在angularjs應用程序中
- 5. 把sortBy('name')放在控制器的哪裏?
- 6. 在哪裏釋放一個塊的視圖控制器
- 7. 把控制器範圍的可訪問對象放在哪裏
- 8. CakePHP - 在哪裏放置服務邏輯
- 9. 放在哪裏/生成使用CakePHP
- 10. CakePHP:在哪裏放置這個功能
- 11. WinForms應用程序中的控制器/靜態狀態類 - 放哪裏?
- 12. 你在哪裏放既不控制器,模型或助手類的ViewModels?
- 13. 我在哪裏放H2觸發器類?
- 14. laravel在哪裏放置記錄器類
- 15. 將控制器加載到cakephp中的其他控制器中
- 16. 在Rails中將「普通」Ruby類的測試類放在哪裏?
- 17. Fluid.app將控制檯日誌放在哪裏?
- 18. 我在哪裏放邏輯來加載視圖控制器?
- 19. AngularJS:指令與控制器 - 什麼邏輯放在哪裏?
- 20. 我在哪裏放顯示邏輯(而不是控制器)?
- 21. Django控制器邏輯在哪裏?
- 22. 控制器組件在哪裏?
- 23. 控制器/在CakePHP
- 24. 在哪裏放內部類?
- 25. 我的非操作/控制器類在哪裏捆綁?
- 26. 你在codeigniter中放置了哪些非控制器類?
- 27. 控制反轉在哪裏控制
- 28. 哪裏可以放置控制器的輔助方法?
- 29. 我在哪裏可以將$ scope以這種方式放入控制器?
- 30. ProgressRing控制在哪裏?
不,它不是真的,它只是代碼中有一點區別,但是謝謝:) – paradoja 2008-09-26 11:54:30