更新模型并同步关系时,如果我没有传入已存在的所有ID,是否会删除该关系?
答案 0 :(得分:12)
您决定:sync
有第二个参数,默认为true
并负责分离:
$model->relationship()->sync([1,2,3]);
$model->relationship()->sync([4,5,6]); // attached [4,5,6], detached [1,2,3]
$model->relationship()->getRelatedIds(); // [4,5,6]
// but:
$model->relationship()->sync([4,5,6], false); // attached [4,5,6], detached []
$model->relationship()->getRelatedIds(); // [1,2,3,4,5,6]
答案 1 :(得分:0)
答案是肯定的。我找不到任何事实上说明的文件。
假设您有2个表:"作者"和"书籍",使用数据透视表" book_authors"。
创建新作者时:
$author_id =2;
$author->books()->sync(array(1,4,5,15));
现在,您在该数据透视表中有4个条目" book_authors":
author_id book_id
2 1
2 4
2 5
2 15
现在更新:
$author_id =2;
$author->books()->sync(array(1,15));
现在" book_authors"是:
author_id book_id
2 1
2 15