Laravel Eloquent - Attach vs Sync
2022-08-30 08:00:41
在Laravel 4的Eloquent ORM中和之间有什么区别?我试图环顾四周,但找不到任何东西!attach()
sync()
在Laravel 4的Eloquent ORM中和之间有什么区别?我试图环顾四周,但找不到任何东西!attach()
sync()
附加():
例:
$user = User::find(1);
$user->roles()->attach(1);
sync():
与该方法类似,该方法用于附加相关模型。但是,主要区别是:attach()
sync()
sync()
接受要放置在数据透视表上的 ID 数组例:
user_role
id user_id role_id 1 12 1 2 12 5 3 12 2
$user = User::find(12);
$user->roles()->sync(array(1, 2, 3));
上述操作将删除:
id user_id role_id 2 12 5
并插入到桌子上。role_id 3
user_role表
id user_id role_id 1 12 1 3 12 2 4 12 3
为了使其更加简单:
该函数仅将记录添加到数据透视表。attach
该函数将当前记录替换为新记录。这对于更新模型非常有用。sync
例:
假设您创建了一个帖子,其中附加了许多标签,其中标签ID为[1,2,3]。
用户能够更新帖子及其标签。
用户将向您发送新的标签 ID 的 [3,4,5]。
如果您使用该功能,帖子的新标签将仅为[3,4,5]。sync
如果您使用该函数,帖子的新标签将为[1,2,3,4,5]。attach