Php 自定义删除方法不支持';t调用自定义数据源

Php 自定义删除方法不支持';t调用自定义数据源,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我正在使用自定义数据源来使用webservice。 创建、读取和更新工作正常,但删除不起作用 这是我在控制器中调用delete方法的代码 public function delete($id){ $this->autoRender = false; debug($this->Article->delete($id)); } 这里是我的数据源中的代码 public function delete(Model $Model, $id =

我正在使用自定义数据源来使用webservice。 创建、读取和更新工作正常,但删除不起作用

这是我在控制器中调用delete方法的代码

    public function delete($id){

        $this->autoRender = false;
        debug($this->Article->delete($id));
}
这里是我的数据源中的代码

public function delete(Model $Model, $id = null) {
    echo "Display a message if this method is called";
    $json = $this->Http->post(CakeSession::read('Site.url') . '/webservice/delete/', array(
        'id' => $id,
        'apiKey' => $this->config['apiKey'],
        'model' => $Model->name
        ));

$res = json_decode($json, true);

if (is_null($res)) {
    $error = json_last_error();
    throw new CakeException($error);
}
return true;
}
但是当我想删除一个项目时,
debug()显示
false
。 我没有其他显示器。 我不明白为什么我的delete方法调用不正确。 我的代码有问题吗


谢谢

让我们检查一下:您只向方法传递了一个参数:

$this->Article->delete($id)
根据您创建的方法,第一个必需参数是
模型
。第二个是
$id

public function delete(Model $Model, $id = null)
在该方法中,您希望同时使用这两个参数。在这里:

'id' => $id
在这里:

'model' => $Model->name

基于此,您需要查看如何调用此方法。顺便说一句,如果你想覆盖
delete()
方法,根据,你需要这样的东西:
delete(int$id=null,boolean$cascade=true)

我的数据源类扩展了类
数据源
,所以
delete()
覆盖依赖于这个
delete()
我认为:数据源代码取自手册,应该可以正常工作。你能给我们看一下debug($res)
的输出吗?我在核心类中挖掘,找到了为什么不调用我的delete()。事实上,在delete方法触发调用Model.php上的_findCount()之前。如果(!method_存在($db,'calculate')| |!method_存在($db,'expression')){return false;},则存在一个
。在我的datasource类中,我只有方法calculate(),没有表达式()。所以我实现了这个功能,现在它开始工作了