CakePHP - HABTM - получить результаты объединенной таблицы базы данных - PullRequest
1 голос
/ 11 февраля 2012

Я использую CakePHP 2.0, и у меня есть отношения многие ко многим между пользователями и курсами. У меня есть таблица базы данных users, courses и courses_users.

Проблема заключается в удалении курсов, которые уже связаны с пользователем. Я не буду удалять их, если в courses_users.

есть связь с пользователем.

Итак, я написал в моей модели Course.php

function beforeDelete() {
    if (??? == 0) {
        return true;
    }
    return false;
}

Мне нужен запрос к базе данных, написанный на CakePHP, чтобы я мог определить, не связан ли курс с каким-либо пользователем (x == 0). Как я могу это сделать? С отношением 1: n я могу написать это

if($this->User->find("count", array("conditions" => array("course_id" => $this->id))) == 0)

но как я могу сделать это в моих отношениях n: m?

С наилучшими пожеланиями.

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Вы можете проверить то же самое, что и для hasMany, потому что один курс имеет много пользователей и один пользователь имеет много курсов.

Попробуйте это (вам не нужно создавать модель UsersCourse или CoursesUser)

В модели курса:

public $hasAndBelongsToMany = array('User');

// в вашем методе

if($this->CoursesUser->find("count", array("conditions" => array("course_id" => $this->id))) == 0);
0 голосов
/ 11 февраля 2012

Почему бы не создать модель для courses_user?

...