Освоение Eloquent в Laravel: легко создавать и обновлять

Вы разработчик Laravel и хотите повысить свои навыки с помощью Eloquent, мощного ORM (объектно-реляционного сопоставления), предоставляемого Laravel? В этой статье блога мы погрузимся в мир создания и обновления записей с помощью Eloquent и рассмотрим различные методы, которые облегчат вашу жизнь. Итак, начнём!

Метод 1: create()

Метод create()позволяет создать новую запись в базе данных с помощью одной строки кода. В качестве параметра он принимает массив атрибутов, где каждый ключ представляет столбец в таблице.

$user = User::create([
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'password' => bcrypt('secret'),
]);

Метод 2: firstOrCreate()

Метод firstOrCreate()полезен, если вы хотите найти первую запись, соответствующую набору атрибутов, или создать новую, если соответствие не найдено. В качестве параметра он принимает массив атрибутов, аналогичный create().

$user = User::firstOrCreate([
    'email' => 'john@example.com',
], [
    'name' => 'John Doe',
    'password' => bcrypt('secret'),
]);

Метод 3: updateOrCreate()

Метод updateOrCreate()удобен, когда вы хотите обновить существующую запись, если она существует, или создать новую, если ее нет. Он принимает массив атрибутов для поиска записи и другой массив атрибутов для обновления или создания.

$user = User::updateOrCreate([
    'email' => 'john@example.com',
], [
    'name' => 'John Doe',
    'password' => bcrypt('new-secret'),
]);

Метод 4: save()

Если у вас есть существующий экземпляр модели и вы хотите обновить его атрибуты, вы можете использовать метод save(). Сначала извлеките запись из базы данных, измените ее атрибуты, а затем вызовите метод save().

$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();

Метод 5: fill()и save()

Метод fill()позволяет вам устанавливать несколько атрибутов модели с помощью массива. После заполнения атрибутов вы можете вызвать метод save(), чтобы сохранить изменения в базе данных.

$user = new User();
$user->fill([
    'name' => 'Jane Doe',
    'email' => 'jane@example.com',
    'password' => bcrypt('secret'),
]);
$user->save();

Метод 6: update()

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

User::where('is_admin', true)->update([
    'status' => 'active',
]);

Метод 7: saveMany()

Метод saveMany()позволяет сохранить несколько связанных моделей за один вызов. Например, если у пользователя есть несколько адресов, вы можете сохранить их все одновременно, используя этот метод.

$user = User::find(1);
$user->addresses()->saveMany([
    new Address(['street' => '123 Main St', 'city' => 'New York']),
    new Address(['street' => '456 Elm St', 'city' => 'San Francisco']),
]);

Метод 8: update()в построителе запросов

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

DB::table('users')
    ->where('is_admin', true)
    ->update(['status' => 'active']);

Имея в своем распоряжении эти методы, вы можете легко создавать или обновлять записи с помощью Laravel Eloquent ORM. Независимо от того, создаете ли вы небольшое приложение или сложную систему, Eloquent предоставляет простой и элегантный способ взаимодействия с вашей базой данных.

Не забывайте экспериментировать и изучать документацию Laravel, чтобы узнать о дополнительных функциях и методах. Приятного кодирования!