Php laravel一对多记录插入和更新解决方案
我有两个表,一个是“ITEM”,第二个是mysql数据库中的“Composite ITEM”。我试图在复合项表中为laravel中的一条记录插入多个项id 其中一个逻辑是,我尝试将多个条目id保存为逗号分隔的值,例如“1,2,3,4”,并将该字段更新为相同的概念。但当我从item表中删除任何一项时,我遇到了问题。如果我从item表中删除了任何一个项,我如何才能从复合item表中的stringitem id中删除相同的项。例如,我从item表中删除了item id 3Php laravel一对多记录插入和更新解决方案,php,mysql,laravel,Php,Mysql,Laravel,我有两个表,一个是“ITEM”,第二个是mysql数据库中的“Composite ITEM”。我试图在复合项表中为laravel中的一条记录插入多个项id 其中一个逻辑是,我尝试将多个条目id保存为逗号分隔的值,例如“1,2,3,4”,并将该字段更新为相同的概念。但当我从item表中删除任何一项时,我遇到了问题。如果我从item表中删除了任何一个项,我如何才能从复合item表中的stringitem id中删除相同的项。例如,我从item表中删除了item id 3 我还想,如果我为一对多关系创
我还想,如果我为一对多关系创建新表,那么在更新记录时如何更新记录。您肯定是在寻找关系,而不是
一对多
。Laravel具有生成和维护多对多关系的优秀功能
方法用于关系中的单个或多个插入或删除。例如,如果要将项目数组([1,2])添加到复合项目中,可以使用attach/detach
如下所示:attach
分离也同样适用:$compositeItem->items()->attach([1,2]);
$compositeItem->items()->detach([1,2]);
方法用于更新现有记录。sync
有点棘手,其工作原理与: sync方法接受要放置在中间层上的ID数组 桌子不在给定数组中的任何ID都将从中删除 中间表 例如,如果要删除2并插入3,可以使用如下方式使用Sync
:sync
$compositeItem->items()->sync([1,3]);