Вы разработчик 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, чтобы узнать о дополнительных функциях и методах. Приятного кодирования!