laravel - 多个 id 的 UpdateExistingPivot

标签 laravel laravel-5 eloquent

为了更新数据透视表中的单个记录,我使用 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/

相关文章:

mysql - Eloquent 枢轴 : how to do select columns in Laravel 5. 1

laravel - 任务调度 未找到命令 'app',但类似的有16个

php - 无法在 Laravel 5 中读取从 BLOB 转换回的 PDF?

php - 如果我有 2 个表必须与标签表具有多对多关系,我是否需要 2 个中间表?

php - laravel 中 URL::to 和 URL::route 的区别

Laravel望远镜-禁止使用403

php - Laravel 如何返回具有最高值的整个项目数据

php - 在 Laravel 5.1 中动态加载模型

laravel - 如何解决php artisan key生成错误?

php - 在 Laravel 中使用同步分离数据透视表