cakephp datasource调用未定义的方法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了cakephp datasource调用未定义的方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个简单的数据
// 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);
        }
    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的cakephp datasource调用未定义的方法全部内容,希望文章能够帮你解决cakephp datasource调用未定义的方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。