Laravel ORM (объектно-реляционное сопоставление) — это популярная функция PHP-фреймворка Laravel, которая упрощает операции с базой данных путем сопоставления таблиц базы данных с объектами PHP. Он обеспечивает выразительный и интуитивно понятный синтаксис для взаимодействия с базами данных, что делает управление базами данных более эффективным и удобным для разработчиков. В этой статье мы рассмотрим некоторые ключевые функции Laravel ORM вместе с примерами кода.
- Модели Eloquent:
Laravel ORM использует модели Eloquent для представления таблиц базы данных. Эти модели инкапсулируют логику получения, вставки, обновления и удаления записей из базы данных. Вот пример определения модели Eloquent для таблицы «пользователи»:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
// ...
}
- Извлечение записей.
Laravel ORM предоставляет различные методы для получения записей из базы данных, напримерall(),find(),where(),first()иpluck(). Вот несколько примеров:
// Retrieve all users
$users = User::all();
// Retrieve a user by ID
$user = User::find(1);
// Retrieve users with a specific condition
$users = User::where('age', '>', 18)->get();
// Retrieve the first user
$user = User::first();
// Retrieve specific columns from users table
$names = User::pluck('name');
- Создание и обновление записей.
Laravel ORM упрощает процесс создания и обновления записей с помощью методовcreate()иupdate(). Вот пример:
// Create a new user
$user = User::create([
'name' => 'John Doe',
'email' => 'john@example.com',
'age' => 25,
]);
// Update a user's email
$user = User::find(1);
$user->email = 'newemail@example.com';
$user->save();
- Удаление записей.
Для удаления записей в Laravel ORM предусмотрен методdelete(). Вот пример:
// Delete a user by ID
$user = User::find(1);
$user->delete();
- Отношения:
Laravel ORM поддерживает определение связей между таблицами базы данных и работу с ними. Он предлагает различные типы отношений, такие как отношения «один к одному», «один ко многим», «многие ко многим» и полиморфные отношения. Вот пример связи «один ко многим» между моделями «Пользователь» и «Сообщение»:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
// ...
public function posts()
{
return $this->hasMany(Post::class);
}
}
class Post extends Model
{
// ...
public function user()
{
return $this->belongsTo(User::class);
}
}
Laravel ORM предоставляет богатый набор функций, упрощающих операции с базами данных в приложениях Laravel. В этой статье мы рассмотрели некоторые ключевые функции, включая модели Eloquent, поиск, создание, обновление, удаление записей и связи. Используя эти функции, разработчики могут более эффективно и результативно создавать приложения на основе баз данных.