私はCakePHP 2.0を使用しています。ユーザーとコース間には多対多の関係があります。 データベーステーブルusers
,courses
およびcourses_users
があります。CakePHP - HABTM - 結合データベーステーブルの結果を取得
問題は、既にユーザーに関連付けられているコースを削除することです。 courses_users
にユーザーとの関連付けがあれば削除しません。
は、だから、私は必要なもの、私のモデルにCourse.php
function beforeDelete() {
if (??? == 0) {
return true;
}
return false;
}
を書いたコースは、任意のユーザー(のx == 0)に関連付けられていない場合、私は判断できるように、CakePHPの中に書かれたデータベースクエリです。 どうすればいいですか? 1:nの関係でこれを書くことができます
if($this->User->find("count", array("conditions" => array("course_id" => $this->id))) == 0)
n:mの関係でこれを行うにはどうすればよいですか?
よろしくお願いいたします。
私はすでにこれを試しましたが、 '致命的なエラー:非オブジェクト上のfind()メンバ関数への呼び出し 'というエラーが表示されるので、' $ this-> CoursesUser'は私のモデルのオブジェクトではありません。 – Tim
次に、「ユーザーコース」を試してください。私は、HABTM関係を定義することで、CoursesUserまたはUsersCourseというリンクモデルが作成されることを100%確信しています。 –
ああ、私のエラーが見つかりました!私は 'CoursesUser'の代わりに' CourseUser'を書きました。ありがとう、私はこれがどのように動作するか知っています。 – Tim