Вопрос

Каков метод сохранения и обновления отношений "Многие ко многим" в Yii framework?

Это было полезно?

Решение

Другие советы

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

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

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

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

Следующее расширение делает то, что вы хотите...Фреймворк Yii - Расширение:вынужденное поведение

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

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

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

Обычно компоненты данных со связями "МНОГИЕ ко МНОГИМ" появляются последовательно и независимо.Таким образом, вам просто нужно выполнять одно действие вставки за другим.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top