繁体   English   中英

Yii框架多对多的关系

[英]Yii framework Many to Many relationships

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

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

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

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

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

以下扩展做你想要的... Yii框架 - 扩展:cadvancedbehavior

需要注意的重要事项是:在每次更新时,扩展会清除所有以前的记录并创建新记录。 因此,当intermediatry表包含除外键之外的额外数据时,我不会使用它。

这个问题太常见了。

通常,具有MANY到MANY关系的数据组件顺序且独立地出现。 所以你只需要一个接一个地插入动作。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM