2011-09-23 106 views
4

默認情況下,CakePHP具有AppModel類,並且應用程序的每個模型都從中繼承。在模型之間共享邏輯的常見設計模式是創建一個行爲並將該模型配置爲$actAs這種行爲。在CakePHP中定義模型類的層次結構

但如果我想介紹這樣的模型類的層次?:

AppModel 
    |__ Vehicle 
     |__ Car 
     |__ Bike 
     |__ Helicopter 

我試圖創建一個Vehicle類,從AppModel繼承,然後每類兒童從Vehicle繼承。但CakePHP告訴我它找不到類Vehicle

我該如何做到這一點,並在CakePHP目錄樹中創建Vehicle

謝謝!

+0

我喜歡這個主意,所以我尋找一點點。有一種方法來實現這一點,解釋[這裏](http://bakery.cakephp.org/articles/eldonbite/2008/09/18/subclass-behavior)儘管還沒有嘗試...其他方式將是亂搞的負責負載的class_registry文件或應用程序類...但我不推薦它 – api55

+0

我也遇到過這種行爲,但似乎它試圖模仿類的本地行爲在應用程序級別繼承。我認爲這是過度的 – elitalon

回答

6

這樣做不應該是一個問題 你只需要在聲明它之前確保你的app :: import()是「父模型」。 或你做了什麼,該模型無法找到?

如果我折騰一樣,我用一個lib是我的「車輛」 它並不一定要在模型目錄

例如模型App :: import('Lib','Vehicle');

車輛延伸AppModel

汽車延長車輛

+0

我相信是正確的;蛋糕不會自動知道在哪裏找到Vehicle類,而無需使用import()手動告訴它。 – Ivo