Каков метод сохранения и обновления отношений Many to Many в структуре Yii?
Существует более эффективная реализация как поведение.
Если вы не создадите модель для таблицы между двумя основными таблицами, единственный вариант – использовать DAO (объект доступа к базе данных) и указать SQL с ним.
Посмотрите, как демо-версия блога выполняет эту задачу.
используйте MANY_MANY
отношения MANY_MANY
чтобы установить много-много связей между моделями (ассоциативная таблица необходима, чтобы разбить отношения «многие ко многим» в отношения «один ко многим»). Теперь вы можете использовать все реляционные функции Active Records
Yii Framework – окончательное руководство по Yii: работа с базами данных – реляционная активная запись
Следующее расширение делает то, что вы хотите … Yii Framework – расширение: cadvancedbehavior
Важно отметить: при каждом обновлении расширение очищает все предыдущие записи и создает новые. Поэтому я не буду использовать его, если в таблице промежуточных данных содержатся дополнительные данные, кроме внешних ключей.
вы можете установить это на уровне mysql. Перейдя к реляционному представлению под каждой таблицей в phpmyadmin и предоставив необходимое реляционное условие … и используем MANY_MANY в классе модели внутри отношений ..
Вопрос слишком распространен.
Обычно компоненты данных с MANY to MANY отношения появляются последовательно и независимо. Поэтому вам просто нужно сделать одно действие вставки за другим.
Если ваши отношения нуждаются в зависимом обновлении, вы должны использовать SQL-триггеры SQL на уровне DataBase. Это обеспечит целостность данных и даст достаточно хорошее разделение в бизнес-логике приложения.
CREATE TRIGGER some_trigger AFTER UPDATE ON some_table ... END IF;
Аналогичным способом является инкапсуляция реляционных данных в одну логическую модель на уровне PHP (и, например, манипулирование ими с 2-3 AR-моделями) и эмуляция логики SQL-триггеров в ней.