如何将模型添加到另一个模型的关系数组中?
E.g。
我想将$domain
添加到$owner->relations[]
,以便我稍后可以在我的代码中使用$owner->domain
。
这样做的原因是,在一个特定的控制器中,我只需要每个模型的部分数据集,因此出于性能原因使用流畅的查询和填充,然后填充模型。
为了便于阅读,我想使用$owner->domain->id
等
$domain->owner()->associate($owner);
为我提供了$domain->owner
选项
但是我无法解决相反的版本
$owner->domain()->associate($domain)
$owner->domain()->attach($domain)
都会导致以下致命错误
调用未定义的方法Illuminate \ Database \ Query \ Builder :: [attach | associate]()
注意:我不想保存任何东西,因为我已经加载了我需要的所有数据。
答案 0 :(得分:19)
setRelation()
应该有效。它只是设置relations
数组中的值。
$owner->setRelation('domain', $domain);