我正在使用自定义数据源来使用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
。
我没有其他显示器。
我不明白为什么我的删除方法没有被正确调用。
我的代码中有什么问题吗?
由于
答案 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)
。