我有一个具有位置属性的用户表,并且想要创建一个模型函数来检索附近的用户(在给定的半径内)。这里是我的模型:将自定义函数添加到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