Abd*_*hem 3 many-to-many relationship laravel eloquent
Laravel 中的 syncWithoutDetaching 和 attach 有什么区别?
两件事情:
attach()将始终向数据透视表添加新记录,而syncWithoutDetaching()仅在不存在的情况下才添加新记录。假设您有订单和商品。
$order->items()->attach(1);
$order->items()->attach(1);
// $order->items()->count() === 2
$order2->items()->syncWithoutDetaching(1);
$order2->items()->syncWithoutDetaching(1);
// $order2->items()->count() === 1
Run Code Online (Sandbox Code Playgroud)
attach()return null,而syncWithoutDetaching()返回一个数组,显示附加/分离/更新的内容。假设id您的数据透视表中有自增主键,您会注意到:
attach() 将新记录添加到数据透视表,并且预先存在的关系将获得新的 ID。sync() 将删除所有存在的关系并设置仅在当前请求中提供,也带有新的 ID。syncWithoutDetaching() 将删除除当前进程中提供的所有现有关系,然后预先存在的行将不会获得新的 ID。| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |