0

我正在使用自定义数据源来使用 web 服务。创建、读取和更新运行良好,但删除不起作用。

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

谢谢

4

1 回答 1

0

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

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

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

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

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

'id' => $id

和这里:

'model' => $Model->name

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

于 2013-05-08T23:29:35.500 回答