Структура Yii От многих до многих отношений

Каков метод сохранения и обновления отношений Many to Many в структуре Yii?

Ответ 2

Если вы не создадите модель для таблицы между двумя основными таблицами, единственный вариант - использовать DAO (объект доступа к базе данных) и указать SQL с ним.

Посмотрите, как демо-версия блога выполняет эту задачу.

Ответ 3

используйте тип отношения MANY_MANY для настройки много-много связей между моделями (необходима ассоциативная таблица, чтобы разорвать отношения "многие ко многим" во взаимосвязи "один ко многим" ) И теперь вы можете использовать все реляционные функции активных записей

Yii Framework - окончательное руководство по Yii: работа с базами данных - реляционная активная запись

Ответ 4

Следующее расширение делает то, что вы хотите... Yii Framework - Расширение: cadvancedbehavior

Важно отметить: при каждом обновлении расширение очищает все предыдущие записи и создает новые. Поэтому я бы не использовал его, когда таблица промежуточных содержит дополнительные данные, кроме внешних ключей.

Ответ 5

вы можете установить это на уровне mysql.. перейдя к реляционному представлению под каждой таблицей в phpmyadmin и предоставив необходимое реляционное условие.. и используйте MANY_MANY в классе модели внутри отношений.

Ответ 6

Вопрос слишком распространен.

Обычно компоненты данных с MANY to MANY отношения появляются последовательно и независимо. Поэтому вам просто нужно сделать одно действие вставки за другим.

Если ваши отношения нуждаются в зависимом обновлении, вы должны SQL-триггеры на уровне базы данных. Это обеспечит целостность данных и даст достаточно хорошее разделение в бизнес-логике приложения.

CREATE TRIGGER some_trigger
    AFTER UPDATE ON some_table
    ...
END IF;

Аналогичным образом следует инкапсулировать реляционные данные в одну логическую модель на уровне PHP (и, например, манипулировать с 2-3 AR-моделями) и эмулировать логику SQL-триггеров в ней.