Laravel DB Facade: обновление или вставка данных стало проще

В Laravel Фасад БД предоставляет удобный и эффективный способ взаимодействия с базой данных. Одной из распространенных задач при работе с базой данных является обновление или вставка данных. В этой статье мы рассмотрим различные методы, доступные в Laravel DB Facade для выполнения этих операций. Мы углубимся в практические примеры и будем использовать разговорный язык, чтобы облегчить понимание. Итак, начнем!

  1. Метод updateOrInsert.
    Метод updateOrInsert — это мощный способ обновить существующие записи или вставить новые, если они не существуют. Он принимает два аргумента: массив значений для обновления или вставки и массив уникальных ключей для проверки существующих записей. Вот пример:
DB::table('users')->updateOrInsert(
    ['email' => 'john@example.com'],
    ['name' => 'John Doe', 'age' => 30]
);
  1. Метод insert:
    Метод insertпозволяет вставлять несколько записей в таблицу с помощью одного запроса. Он принимает массив массивов, где каждый внутренний массив представляет набор значений записи. Вот пример:
DB::table('users')->insert([
    ['name' => 'John Doe', 'email' => 'john@example.com'],
    ['name' => 'Jane Smith', 'email' => 'jane@example.com'],
]);
  1. Метод update:
    Метод updateиспользуется для обновления одной или нескольких записей в таблице на основе условия. Для обновления требуется массив пар столбец-значение, и его можно комбинировать с другими методами построения запросов для более сложных условий. Вот пример:
DB::table('users')
    ->where('id', 1)
    ->update(['name' => 'Updated Name', 'email' => 'updated@example.com']);
  1. Метод upsert(Laravel 8+):
    Метод upsert, представленный в Laravel 8, позволяет обновлять существующие записи или вставлять новые. на основе ограничения уникального ключа. Для обновления или вставки требуется массив значений и массив уникальных ключей. Вот пример:
DB::table('users')->upsert(
    [
        ['email' => 'john@example.com', 'name' => 'John Doe'],
        ['email' => 'jane@example.com', 'name' => 'Jane Smith'],
    ],
    ['email'],
    ['name']
);

В этой статье мы рассмотрели несколько методов, предоставляемых Laravel DB Facade для обновления или вставки данных. Мы рассмотрели методы updateOrInsert, insert, updateи upsertна практических примерах кода. Используя эти методы, вы можете эффективно выполнять операции с базой данных в своих приложениях Laravel. Теперь у вас есть множество вариантов на выбор в зависимости от ваших конкретных требований.