首页 > 解决方案 > Laravel 从没有 id 数组的模型中更新特定数据

问题描述

我想更新所有模型数据,除了一些来自 id 数组的数据,这种事情怎么可能用 eloquent?

我在做什么:

创建或更新事件并将可用性设置为 0 还会在 foreach 循环中为每个事件收集 id

$rv = CalendarSchedule::updateOrCreate([
    'date_start' => $import['start']->format('Y-m-d H:i:s'),
    'date_end' => $import['end']->format('Y-m-d H:i:s'),
    'operator_id' => $operator->id
],[
    'location_id' => $operator->place_id, 
    'available' => 0,
    'block' => 1
]);
array_push($ids, $rv->id);

现在,当 foreach 循环结束时,我想更新所有 CalendarSchedule 数据,除了 ids 数组中的数据并设置available => 1

标签: laraveleloquent

解决方案


使用使它工作。

    DB::table('calendar_schedules')->whereNotIn('id', $ids)->update([
        'available' => 1
    ]);

推荐阅读