如果我有一个多对多的关系,那么用它的关系更新关系是非常容易的sync
method.
但是我用什么来同步一对多关系呢?
- table
posts
: id, name
- table
links
: id, name, post_id
在这里,每一个Post
可以有多个Link
s.
我想根据输入的链接集合(例如,从可以添加、删除和修改链接的 CRUD 表单)同步与数据库中特定帖子关联的链接。
应删除数据库中不存在于我的输入集合中的链接。数据库和我的输入中存在的链接应更新以反映输入,并且仅存在于我的输入中的链接应添加为数据库中的新记录。
总结所需的行为:
- inputArray = true / db = false ---CREATE
- inputArray = false / db = true ---删除
- inputArray = true / db = true ----更新
不幸的是,这儿没有sync
一对多关系的方法。自己做起来非常简单。至少如果您没有任何外键引用links
。因为这样您就可以简单地删除这些行并再次将它们全部插入。
$links = array(
new Link(),
new Link()
);
$post->links()->delete();
$post->links()->saveMany($links);
如果您确实需要更新现有的(无论出于何种原因),您需要完全按照您在问题中描述的方式进行操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)