11

Yii框架中保存和更新多对多关系的方法是什么?

4

6 回答 6

10

作为行为有更好的实现。

http://www.yiiframework.com/forum/index.php?/topic/6905-please-test-my-ar-enhancement-automatically-sync-many-many-table-when-calling-save/

于 2010-04-24T05:23:16.533 回答
3

除非您为两个主表之间的表创建模型,否则您唯一的选择是使用 DAO(数据库访问对象)并使用它指定 SQL。

看看博客演示如何完成这项任务。

于 2009-10-06T17:20:49.933 回答
3

使用MANY_MANY关系类型在模型之间建立多对多连接(需要一个关联表将多对多关系分解为一对多关系)现在您可以使用 Active Records 的所有关系函数

Yii 框架 - Yii 权威指南:使用数据库 - 关系活动记录

于 2010-04-23T02:39:03.400 回答
1

以下扩展可以满足您的需求... Yii 框架 - 扩展:cadvancedbehavior

需要注意的重要一点:每次更新时,扩展程序都会清除所有以前的记录并创建新记录。因此,当中间表包含外键以外的额外数据时,我不会使用它。

于 2012-05-25T20:38:23.760 回答
0

您可以在 mysql 级别进行设置..通过转到 phpmyadmin 中每个表下的关系视图并提供必要的关系条件..并在关系内部的模型类中使用 MANY_MANY ..

于 2012-02-14T09:02:39.567 回答
0

这个问题太常见了。

通常具有 MANY to MANY 关系的数据组件顺序且独立地出现。因此,您只需要一个接一个地执行插入操作。

如果您的关系需要依赖更新,您应该在数据库级别使用SQL 触发器。这将确保数据的完整性,并在应用程序的业务逻辑中提供很好的分离。

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

一种类似的方法是将关系数据封装在 PHP 级别的一个逻辑模型中(例如,在那里使用 2-3 个 AR 模型进行操作)并在其中模拟 SQL 触发器逻辑。

于 2012-07-20T15:33:16.790 回答