2013-02-19 31 views
0

我有一個「Admin」模型,它擴展了另一個擴展了「AppModel」的模型「User」。調用成員函數find()在非擴展模型的對象上

我有一個控制器「ApisController」,其中我試圖從管理員表中查詢數據。

所以我在做這樣的事情:

$admins = $this->Admin->find('all'); 

但是,當我這樣做,我得到了以下錯誤消息:

Error: Call to a member function find() on a non-object 
File: /home/farhan/www/core/app/Controller/ApisController.php 
Line: 9 

如果我嘗試做同樣的事情在一個控制器「AdminsController」,一切工作正常。所以我不確定我做錯了什麼。我是新來的蛋糕,所以我明白這是一個簡單的錯誤。

+0

你如何加載模型?這是你的問題。 – mark 2013-02-19 14:40:29

回答

1

如果你有ApisController並希望使用的「管理」模式(這顯然不是從「蜜蜂」的單數形式 - 這很可能是API),您需要手動聲明你使用的模型:

public $uses = array('Admin'); 

然後控制器將「Admin」模型作爲主要模型。

Book

默認是蛋糕試圖找到基於拐點是正確的:

PostsController => Post model 
(plural => singular) 
+0

這工作!我忘了加載模型。所以我假設如果控制器的名稱與模型相同,則不必加載模型?因爲在我的名爲「AdminController」的控制器中沒有這個工作正常。 – 2013-02-19 14:44:26

+1

您應該知道控制器默認使用其主要模型 - 並且命名約定是複數AdminsController,單數Admin模型。如果你將「admin」聲明爲uninflicted,那麼你就會有單數。但這不是默認設置。 – mark 2013-02-19 14:46:06

+0

明白了。謝謝你的幫助 :) – 2013-02-19 14:47:31

相關問題