【发布时间】:2023-02-03 17:05:20
【问题描述】:
模型A(id) // ModelB(A.id,C.id)// 模型C(id,name)
你好,
如何使用模型 A 获取 C.name? 目前模型A有一个模型B,模型C有多个模型B。 我尝试使用 hasOnethrough 使用模型 B 将模型 A 和 C 关联起来,但它给了我 null。
【问题讨论】:
标签: laravel eloquent relationship has-many-through has-many
模型A(id) // ModelB(A.id,C.id)// 模型C(id,name)
你好,
如何使用模型 A 获取 C.name? 目前模型A有一个模型B,模型C有多个模型B。 我尝试使用 hasOnethrough 使用模型 B 将模型 A 和 C 关联起来,但它给了我 null。
【问题讨论】:
标签: laravel eloquent relationship has-many-through has-many
public function myFunction()
{
return $this->hasOnethrough(ModelC::class, ModelB::class,
'a_id', 'id', 'id', 'c_id');
}
根据您的问题,ModelB 是您处理关系的枢轴模型。
通常我们将数据透视表用于多对多关系,因为您可以使用 hasManyThrough 方法。
您可以按照您的要求在您的ModelA模型中尝试上述功能,并将通过ModelB链接到modelC
然后你可以像正常关系输出一样获取它。
【讨论】: