Как определить отношение «многие ко многим» в CakePHP - PullRequest
1 голос
/ 25 октября 2010

У меня есть приложение, в котором пользователи принадлежат ко многим категориям. Итак, у меня есть таблица Users, таблица Categories и Users2Categories. Таблица Users2Categories состоит из user_id и category_id. Таким образом, я предполагаю, что вопрос: создать ли модель для Users2Categories? В конечном счете, я хотел бы иметь возможность «найти» объекты пользователя и привязать их соответствующие категории.

Кроме того, я могу определить это отношение через консоль для выпечки?

Ответы [ 3 ]

8 голосов
/ 25 октября 2010
  1. Читайте о HABTM в кулинарной книге.Переименуйте таблицу «Users2Categories» в «category_users».
  2. Вы можете испечь модели из консоли, но сначала вы должны иметь правильные таблицы (см. Выше).
1 голос
/ 25 октября 2010

HABTM, безусловно, путь.

Cake будет обрабатывать таблицу соединений для вас, при условии соблюдения вами правил Cake.

Прочитайте раздел в Книге, на который ссылается bancer, затем прочитайте его снова.Затем прочитайте это: http://mrphp.com.au/code/working-habtm-form-data-cakephp, который поможет вам с реализацией в реальном мире.

0 голосов
/ 25 октября 2010

Итак, вы задали два вопроса и получили хорошую информацию, но ответы довольно просты:

создать модель для Users2Categories?

Можно, но я бы не стал. Cake создаст модель для объединения во время выполнения. Поскольку эта модель / таблица существует исключительно для облегчения объединения (то есть у нее нет собственных свойств или методов), просто позвольте Cake сделать эту работу за вас. Однако, как утверждает @bancer, вам нужно будет назвать таблицу в соответствии с соглашением Cake.

Кроме того, я могу определить это отношение через консоль для выпечки?

Нет. Вы можете создать скелет модели, но это не будет включать определение каких-либо ассоциаций. AFAIK, нет никакого способа сделать это. Испеките скелет, добавьте в него ассоциации и т. Д.

Я не мог быть более неправым. Смотрите комментарии. Спасибо за образование, @bancer и @ beporter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...