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. 他の表示はありません。delete メソッドが正しく呼び出されない理由がわかりません。私のコードに何か問題がありますか?

ありがとう

4

1 に答える 1

0

確認しましょう: メソッドにパラメータを渡すだけです:

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

作成したメソッドによると、必須の最初のパラメーターはModel. 2 つ目は次の$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 に答える