Laravel – это популярный PHP-фреймворк, известный своим элегантным синтаксисом и мощными функциями. Одним из его ключевых компонентов является система Eloquent ORM (объектно-реляционное сопоставление), которая обеспечивает простой и выразительный способ взаимодействия с вашей базой данных. В этой статье блога мы углубимся в модели Laravel Eloquent и рассмотрим различные методы на примерах кода.
- Получение моделей:
1.1. Найти по первичному ключу:
$user = User::find(1);
1.2. Найти по атрибуту:
$user = User::where('name', 'John')->first();
1.3. Найти или не найти:
$user = User::findOrFail(1);
- Создание моделей:
2.1. Базовое создание:
$user = new User;
$user->name = 'John';
$user->email = 'john@example.com';
$user->save();
2.2. Массовое назначение:
$user = User::create([
'name' => 'John',
'email' => 'john@example.com',
]);
- Обновление моделей:
3.1. Обновление по первичному ключу:
$user = User::find(1);
$user->name = 'New Name';
$user->save();
3.2. Обновление по атрибуту:
User::where('name', 'John')->update(['name' => 'New Name']);
- Удаление моделей:
4.1. Удалить по первичному ключу:
$user = User::find(1);
$user->delete();
4.2. Удалить по атрибуту:
User::where('name', 'John')->delete();
- Запрос отношений:
5.1. Отношения «один к одному»:
class User extends Model
{
public function phone()
{
return $this->hasOne(Phone::class);
}
}
$user = User::find(1);
$phone = $user->phone;
5.2. Отношение «один ко многим»:
class User extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
$user = User::find(1);
$posts = $user->posts;
- Дополнительные методы модели:
6.1. Средства доступа:
class User extends Model
{
public function getNameAttribute($value)
{
return strtoupper($value);
}
}
$user = User::find(1);
$name = $user->name; // Returns the name in uppercase
6.2. Мутаторов:
class User extends Model
{
public function setNameAttribute($value)
{
$this->attributes['name'] = strtolower($value);
}
}
$user = new User;
$user->name = 'JOHN';
$user->save(); // The name will be saved as lowercase
В этой статье мы рассмотрели различные методы, предоставляемые моделями Laravel Eloquent, с примерами кода. Мы рассмотрели извлечение моделей, создание моделей, обновление моделей, удаление моделей, запрос связей и дополнительные методы модели, такие как средства доступа и мутаторы. Понимание этих методов позволит вам эффективно работать с моделями Laravel Eloquent и создавать надежные веб-приложения.
Не забывайте использовать возможности системы Eloquent ORM Laravel и ее обширный набор методов для оптимизации процесса разработки.