为了更新数据透视表中的单个记录,我使用 updateExistingPivot
方法。但是它以 $id 作为第一个参数。例如:
$step->contacts()->updateExistingPivot($id, [
'completed' => true,
'run_at' => \Carbon\Carbon::now()->toDateTimeString()
]);
但是如何一次更新数据透视表中的多个现有行?
最佳答案
您可以访问 BelongsToMany 关系中的 allRelatedIds() 方法,该方法将返回出现在数据透视表中与初始模型相对应的相关模型 ID 的集合。
然后 foreach 将完成这项工作:
$ids = $step->contacts()->allRelatedIds();
foreach ($ids as $id){
$step->contacts()->updateExistingPivot($id, ['completed' => true]);
}
关于laravel - 多个 id 的 UpdateExistingPivot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36694081/