У меня есть пользователи, и у меня есть курсы. Я пытаюсь создать кнопку «Присоединиться» для пользователей, когда они просматривают список курсов, чтобы подписаться на курсы.Связанные объекты в CakePHP
мне сказали, чтобы использовать
class Course extends AppModel
{
public $hasAndBelongsToMany = array('User');
}
и
class User extends AppModel
{
public $hasAndBelongsToMany = array('Course');
}
Но я не знаю, как реализовать фактическую кнопку и проводку от информации к таблице называется courses_users
Где это реализовать?
Заранее благодарен!
CakePHP основан на принципе конвенции по конфигурации, когда у вас есть отношения HABTM между моделью курса и моделью пользователя, предполагается, что в вашей базе данных есть таблица books_users и автоматически будет записываться в нее при сохранении пользователей, связанных с Конечно, даже если функция называется $ this-> Course-> saveAll() (которая сохраняет связанные данные). – Chris
@Chris это прекрасно на самом деле - он отлично работает, за исключением того, что, когда другой пользователь регистрируется для одного и того же курса, он записывает над файлом новое имя пользователя, даже если есть прикрепленный к обоим объектам $ hasAndBelongsToMany. Вы знаете, почему это произойдет? – itamar
Поведение по умолчанию для сохранения данных HABTM для CakePHP состоит в том, чтобы удалить все записи, связанные с тем, который вы сохраняете, а затем создать их из ваших данных (как описано в ссылке ниже для уникальной опции): http: //book.cakephp. org/2.0/en/models/association-linking-models-together.html # hasandbelongstomany-habtm, решение состоит в том, чтобы объявить ваше отношение habtm к 'unique' => keepExisting. – Chris