加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

cakephp datasource调用未定义的方法

发布时间:2020-12-13 13:46:42 所属栏目:PHP教程 来源:网络整理
导读:我创建了一个简单的数据源: // app/Model/Datasource/FeedSource.phpApp::uses('DataSource','Model/Datasource');class FeedSource extends DataSource { public function abcd() { echo 'Hello World!'; }} 在我的database.php中: public $feed = array(
我创建了一个简单的数据源:
// app/Model/Datasource/FeedSource.php

App::uses('DataSource','Model/Datasource');

class FeedSource extends DataSource {
    public function abcd() {
        echo 'Hello World!';
    }
}

在我的database.php中:

public $feed = array(
    'datasource' => 'FeedSource'
);

在Feeda模型中:

class Feeda extends AppModel {
    public $useTable = false;
    public $useDbConfig = 'feed';
}

在列表控制器中:

$this->loadModel('Feeda');
$this->Feeda->abcd();

但是,它返回一个致命的错误:

Error: Call to undefined method FeedSource::query()

怎么解决?

谢谢…

也许你的意思是DboSource而不是DataSource.

DataSource没有方法查询,DboSource也没有.将代码更新为:

App::uses('DboSource','Model/Datasource');
class FeedSource extends DboSource {}

编辑:看起来不是问题.在模型中有一个魔术__call方法调用
$this-> getDataSource() – > query($method,$params,$this); Source您需要自己实现.

class FeedSource extends DataSource {
    public function abcd() {
        echo 'Hello World!';
    }

    public function query($method,$Model) {
        // you may customize this to your needs.
        if (method_exists($this,$method)) {
            return call_user_func_array(array($this,$method),$params);
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读