我有一個具有位置屬性的用戶表,並且想要創建一個模型函數來檢索附近的用戶(在給定的半徑內)。這裏是我的模型:將自定義函數添加到cakephp中的模型
class User extends AppModel { public function getNearbyUsers($id,$dist=10) { return $this->query(...); } }
這裏是我的控制器,我正在嘗試調用該函數:
class UsersController extends AppController { public function getNearbyUsers($id) { ... $this->User->getNearbyUsers($id) ... } }
但是這樣做的結果:PHP Fatal error: Call to a member function getNearbyUsers() on a non-object
我在做什麼錯?
編輯:沒關係,它不再抱怨了。但是它拋出了一個SQL錯誤,我的模型函數從來沒有被調用。在上的MySQL查詢日誌進行進一步的檢查我看到這一點:
Query SHOW TABLES FROM `xxx` Query getNearbyUsers Quit
似乎CakePHP會解釋$這個 - >用戶 - > getNearbyUsers作爲文字查詢。所以我的問題仍然存在:如何將自定義函數添加到Cake中的模型中?
的代碼看起來是正確的。你有沒有清理'app/tmp/cache'中的緩存? – dhofstet 2012-07-07 09:52:09
我有同樣的問題,直到cakePHP 1.3它與CakePHP 2.4.x(至少我測試)一起不可用。 – SaidbakR 2014-03-18 11:37:15
你可以解決查詢問題。我面臨着同樣的挑戰@ – aWebDeveloper 2014-08-17 20:51:04