在laravel中首先分离()而不是sync()是否相同?

时间:2016-10-18 05:37:40

标签: laravel

detach()然后attach()再次具有与sync同样的效果吗?

我的意思是我可以使用这个

$user->settings()->detach(44);
$user->settings()->attach(44, ['extra'=>'data]);
而不是这个

$user->settings()->attach([44 => ['extra'=>'data]]);

1 个答案:

答案 0 :(得分:1)

通过同步,您实际上可以"同步"您在数据库中提供的数据。

假设您要将帖子同步到用户:

User::find($someUser)->posts()->sync([5, 7]);

OR

User::find($someUser)->posts()->attach(5);
User::find($someUser)->posts()->attach(7);

sync()会在DB中保留您传递给它的ID,其中attach()会添加到现有数据中。