when(! is_null($user), function (Builder $builder) use ($user) { $builder->where('user_id', $user->id); })->whereIn('id', $keys); DB::transaction(function () use ($model, $keys, &$count) { /** @var Image $image */ foreach ($model->cursor() as $image) { // 相册图片数量更新 $image->album?->decrement('image_num'); // 更新相册图片数量 $image->delete(); // 更新数量 if ($image->user) { $image->user->image_num = $image->user->images()->count(); $image->user->save(); } $count++; } }); return $count; } }