cakephp datasource调用未定义的方法

前端之家收集整理的这篇文章主要介绍了cakephp datasource调用未定义的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个简单的数据源:
  1. // app/Model/Datasource/FeedSource.PHP
  2.  
  3. App::uses('DataSource','Model/Datasource');
  4.  
  5. class FeedSource extends DataSource {
  6. public function abcd() {
  7. echo 'Hello World!';
  8. }
  9. }

在我的database.PHP中:

  1. public $Feed = array(
  2. 'datasource' => 'FeedSource'
  3. );

Feeda模型中:

  1. class Feeda extends AppModel {
  2. public $useTable = false;
  3. public $useDbConfig = 'Feed';
  4. }

在列表控制器中:

  1. $this->loadModel('Feeda');
  2. $this->Feeda->abcd();

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

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

怎么解决

谢谢…

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

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

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

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

  1. class FeedSource extends DataSource {
  2. public function abcd() {
  3. echo 'Hello World!';
  4. }
  5.  
  6. public function query($method,$Model) {
  7. // you may customize this to your needs.
  8. if (method_exists($this,$method)) {
  9. return call_user_func_array(array($this,$method),$params);
  10. }
  11. }
  12. }

猜你在找的PHP相关文章