27

如何将模型添加到另一个模型的关系数组中?

例如

  • 域属于所有者。
  • 所有者拥有一个域。
  • 我有 $domain(域的实例)。
  • 我有 $owner(所有者的实例)。

我想添加$domain$owner->relations[]以便$owner->domain稍后在我的代码中使用。

这样做的原因是,在一个特定的控制器中,我只需要来自每个模型的部分数据集,因此出于性能原因使用 fluent 通过连接查询,然后填充模型。

然后为了可读性,我想使用$owner->domain->idetc

$domain->owner()->associate($owner);给我一个$domain->owner选择

但是我无法计算出相反的版本

$owner->domain()->associate($domain)
$owner->domain()->attach($domain)

两者都导致以下致命错误

调用未定义的方法 Illuminate\Database\Query\Builder::[attach|associate] ()

注意:我不想保存任何东西,因为我已经加载了我需要的所有数据。

4

1 回答 1

52

setRelation()应该管用。它只是设置relations数组中的值。

$owner->setRelation('domain', $domain);
于 2015-07-08T09:49:23.490 回答