[英]laravel one to many record insert and update solution
我有兩個表,一個是“ ITEM”,第二個是mysql數據庫中的“復合項”。 我正在嘗試在laravel中的單個記錄的復合項目表中插入多個項目ID。
我試圖將多個項目ID保存為逗號分隔的值(例如“ 1,2,3,4”),並且還將該字段更新為同一概念,這是我的邏輯之一。 但是當我從項目表中刪除任何一項時,我遇到了問題。 如果我從項目表中刪除任何項目,如何從復合項目表中的字符串項目ID中刪除同一項目。 例如從項目表中,我已刪除項目ID 3。
我也想過,如果我為一對多關系創建新表,那么當我更新記錄時如何更新記錄。
你肯定找許多一對多的關系,而不是one-to-many
。 Laravel具有出色的功能,可以生成和維護many-to-many
關系。
attach/detach
方法用於關系中的單個或多個插入或刪除。 例如,如果要向復合項目添加項目數組[[1,2]),則可以使用attach
如:
$compositeItem->items()->attach([1,2]);
分離也是如此:
$compositeItem->items()->detach([1,2]);
sync
方法用於更新現有記錄。 Sync
有點棘手,其工作原理完全相同:
sync方法接受一組ID放置在中間表上。 給定數組中沒有的任何ID將從中間表中刪除。
就像您要刪除2並插入3一樣,您可以像這樣使用sync
:
$compositeItem->items()->sync([1,3]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.