2011-09-02 74 views
0

在Cakephp2.0中,我有一個名爲「Club」的模型,我從「ClubsController」訪問它。如果我嘗試做了$這個 - >俱樂部 - >找到我的控制器內它說:「錯誤:模型俱樂部數據庫表俱樂部沒有被發現。」堆棧跟蹤具有名爲「俱樂部」的Cakephp模型根本不起作用!保留關鍵字?

.....ClubsController.php(7): Model->find('first', Array)

真正的數據庫表所謂的「ClubTable」,我已經在課堂上指定了$useTable = 'ClubTable'。這讓我相信它會自動製作一個名爲「Club」的模型,這與我的模型不同。文件夾結構,這樣的:

/app/Model/Club.php 
/app/Plugin/Admin/Controller/ClubsController.php 

現在,這裏的踢球,如果我改變我的模型「Club123」的型號,以Club123.php。然後在控制器中,我只需要$this->loadModel('Club123');即可完美工作,並加載我的模型並連接到我的數據庫和表格「ClubTable」。

「俱樂部」以某種方式保留的關鍵字?

爲了進一步混淆問題,當我沒有使用插件(在/ app/Controllers文件夾中創建ClubsController)時,它工作正常。總結一下問題:

模型從我的插件內調用時會不能被發現,但模型Club123即可。當不在插件內部時可以找到俱樂部

任何幫助將不勝感激,因爲我拉我的頭髮。哦,我還刪除了/ app/tmp/cache/models /文件夾中的所有文件。

+0

文件名應該是情人案件。爲什麼不使用Cake Bake功能? –

回答

-1

這個問題已經死了好幾個月。 CakePHP使用「插件」處理各種環境的能力被證明太過於無用。 CodeIgniter允許我輕鬆創建嵌套目錄並訪問常見模型。所以我想我解決這個問題的方法是:切換到CodeIgniter!

0

請仔細檢查您的命名約定。

在文件系統中,所有名稱都應該是LOWERCASE,下劃線用於分隔單詞。

在PHP中,它們應該是CamelCase。

我建議重新閱讀this part of the book以確保您知道一切正確。

我發現,安裝和使用Cake's Bake console將清理這些各種各樣的問題,因爲一切都是自動生成的:)

+1

雖然你的回答對於CakePHP 1.3(及以下版本)是正確的,但CakePHP 2.0(MikeMurko使用它)是不正確的。在那裏,文件系統中的名字是駱駝殼,請參閱https://github.com/cakephp/docs/blob/master/en/appendices/2-0-migration-guide.rst – dhofstet

+0

好的,謝謝。我想我不能幫得太多。 – Ivo