gpt4 book ai didi

php - 多对多关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:51 27 4
gpt4 key购买 nike

我看到了在 Yii 中处理多对多关系的各种不同方式。然而,我看到的例子并不完全充实,我觉得我遗漏了什么。

例如,Larry Ullman 的教程没有使用 self::MANY_MANY 关系 - http://www.larryullman.com/2010/08/10/handling-related-models-in-yii-forms/

就添加和检索记录而言,在模型、 Controller 和 View 中处理多对多的标准方法是什么?

澄清:我想我正在寻找一个涉及 2 个表的示例,它们是多对多关联的,在其中我不仅可以看到两个模型,还可以看到 Controller 和 View ,因此我可以完全理解发生了什么。

最佳答案

您实际上需要 3 个表(因此数据透视表的额外模型),但是一旦您拥有它,您实际上可以使用常规的 yii 关系功能。

例如,我的一个项目在购买和交易之间存在多对多关系(请不要问为什么 :))。因此,有一个 Purchase 模型、一个 Transaction 模型和一个 PurchaseToTransaction 模型在它们之间建立联系。我可以只做一个 $oPurchase->transactions 并且 Yii 将使用关系处理多对多部分,它定义如下:

'transactions' => array(self::MANY_MANY, 'Transaction', 'PurchaseToTransaction(purchaseId, transactionId)')

请注意,对于交易,同样适用,但反过来:

'purchases'   => array(self::MANY_MANY, 'Purchase', 'PurchaseToTransaction(transactionId, purchaseId)'),

因此 $oPurchase->transactions$oTransaction->purchases 都由 Yii 自动处理。

总之,它确实可以处理多对多使用关系(至少在阅读部分,对于写作你仍然需要任意解决方案)。

关于php - 多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com