Laravels syncWithoutDetaching和其他数据

时间:2019-03-01 11:58:28

标签: laravel eloquent eloquent--relationship laravel-5.8

我用Google搜索了手指的酸痛处,看不到有人在讨论这个问题,但是我怀疑Laravels syncWithoutDetaching()方法没有为save(),{ {1}}和sync()是吗?

有人知道吗?在API文档中,该方法具有以下参数:

attach()

我无法将现有数据添加到来宾和事件之间的关系中。我需要为客人添加状态以及他们正在参加的活动(可能参加或拒绝)。

1 个答案:

答案 0 :(得分:2)

sync()syncWithoutDetaching()都没有用于附加值的参数,您必须将附加值作为带有id的数组传递。


根据{{​​3}}:

  

您还可以传递带有ID的其他中间表值:

$user->roles()->sync([
    1 => ['expires' => true],
    2,
    3
]);


如果您查看docs,可以看到syncWithoutDetaching()只是调用sync(),但是将false作为第二个参数传递。

在您的情况下,将是这样的:

$event->guests()->syncWithoutDetaching([
    1 => ['attending' => true],
    2 => ['attending' => false]
])