Как добавить пачку записей но если значения поменялись?

Для добавления пачки записей в Laravel с проверкой на изменение значений, вы можете использовать метод updateOrCreate модели. Этот метод позволяет обновить запись, если она уже существует, или создать новую запись, если ее еще не существует, на основе указанных атрибутов.

Чтобы применить updateOrCreate для пачки записей, вам необходимо выполнить следующие шаги:

1. Получите данные, которые вы хотите добавить или обновить в виде массива или коллекции.
2. Переберите каждый элемент данных и вызовите updateOrCreate для каждой записи.
3. Передайте атрибуты, по которым вы хотите проверить наличие записи, как первый аргумент метода updateOrCreate. Обычно это уникальный идентификатор (например, id) или уникальное поле (например, email).
4. Передайте атрибуты, которые вы хотите добавить или обновить, вторым аргументом метода updateOrCreate.

Пример кода:

$data = [
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Emma'],
    ['id' => 3, 'name' => 'Alex'],
];

foreach ($data as $item) {
    YourModel::updateOrCreate(['id' => $item['id']], $item);
}

В приведенном выше примере, YourModel является вашей моделью Laravel, с которой вы работаете, id - это атрибут, по которому проверяется наличие записи, и $item - это массив с атрибутами, которые вы хотите добавить или обновить.

Метод updateOrCreate вернет экземпляр модели, который был обновлен или создан, и вы можете использовать его по желанию.

В результате, если запись с указанным атрибутом уже существует в базе данных, она будет обновлена значениями из переданного массива. Если же запись не существует, она будет создана с указанными атрибутами. Это позволяет обработать пачку записей с учетом их изменений.