自定义删除方法不会调用自定义数据源

时间:2013-05-08 21:28:14

标签: 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 = 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。 我没有其他显示器。 我不明白为什么我的删除方法没有被正确调用。 我的代码中有什么问题吗?

由于

1 个答案:

答案 0 :(得分:0)

让我们检查:您只是将参数传递给您的方法:

$this->Article->delete($id)

根据您创建的方法,第一个参数是必需的Model。第二个是$id

public function delete(Model $Model, $id = null)

在方法期间,您要使用这两个参数。这里:

'id' => $id

在这里:

'model' => $Model->name

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