gpt4 book ai didi

php - 两个模型之间有很多关系

转载 作者:行者123 更新时间:2023-11-29 06:10:52 25 4
gpt4 key购买 nike

我有这样的数据库

  == Invoices ==
id
customer_id

== Customers ==
id
firstname
lastname
membersince

所以我在两个模型之间建立了如下关系。

发票模型中的关系定义:

'customers'=>array(self::HAS_MANY,'Invoices','customer_id'),

客户模型中的关系定义

'invoices' => array(self::BELONGS_TO, 'Invoices', 'invoice_id'),

现在我想知道两个模型之间的关系是否正确?欢迎提出任何建议。

最佳答案

不,模型之间的关系不正确。

我假设您在这里想要的是客户可以拥有许多发票,但发票只能由单个客户拥有,因为这是您的数据库架构所暗示的。

请注意,在下面的代码中,我区分了 customer 和 Invoice 的单复数形式,以使代码符合逻辑且易于理解。

在这种情况下,Invoice 模型中的关系定义将如下所示:

class Invoice extends CActiveRecord {
public function relations() {
return array(
'customer' => array(self::BELONGS_TO, 'Customer', 'customer_id')
);
}
}

发票“属于”客户。 'Customer' 表示我们引用的模型类型是 Customer'customer_id'中的列名称code>invoices 表,引用客户的主键。

Customer 模型看起来有点棘手:

class Customer extends CActiveRecord {
public function relations() {
return array(
'invoices' => array(self::HAS_MANY, 'Invoice',
'customer_id', 'index' => 'id')
);
}
}

这里的关系定义表明一个Customer可以引用许多Invoice模型。请注意关系的其余部分是如何定义的。 customer_id 又是引用 Customer 的列,并且 'index' => 'id' 告诉 Yii 使用 customers 表中的 id 作为关系的键。

您可以在 Yii documentation 中找到有关 relations 方法的更多信息。 .

关于php - 两个模型之间有很多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238345/

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