簡體   English   中英

laravel一對多記錄插入和更新解決方案

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM