3

HABTM 関係に接続されたユーザーとレポート テーブルがあります。

テーブルに正しいレコードを作成するレポートを保存したり、reports_usersを使用して関係テーブルを表示したりできます$this->User->ReportsUser->..

reports_users テーブルの特定の行を削除したいのですが、できないようです。

私は次のことを試しました:

$this->User->ReportsUser->deleteAll(array(
    'ReportsUser.report_id' => $this->data['Report']['report_id'], 
    'ReportsUser.user_id' => $this->data['Report']['user_id']
));

..しかし、次のクエリを使用して、指定された user_id を持つすべての行を削除します。

不適切な削除クエリ

ここで何が間違っていますか。deleteAll 呼び出しのデータが悪いのでしょうか?

ユーザーやレポートは削除したくありません。それらの間の関係のみを削除したいと考えています。

テーブル名が正しいこと、および変数が存在し、設定されていることを確認できます。

4

1 に答える 1

1

あなたのコードにエラーはないようです。どちら$this->data['ReportUser']['report_id']かの問題があります。最善の方法は、最初に を印刷すること$this->dataです。そして、それが存在するかどうかを確認しますか?

安全上の理由から、2 番目の引数$cascade = falseを使用し、メソッドを使用してすべての ReportUser モデル Associationship のバインドを解除し$this->ReportUser->unbindModel()ます。

もう1つの理由は、データを $this->User->ReportUser. Try to use $this->ReportUser->deleteAll('your conditions', false);直接削除しているようです。

うまくいかない場合はお尋ねください。

于 2012-07-16T05:20:47.757 に答える