LaravelLaravel14 min read

Laravel Eloquent ORM: Working with Databases

Master Laravel Eloquent ORM. Learn how to create models, perform database operations, relationships, and queries. Essential for Laravel development.

Jessica Lee
December 19, 2025
0.0k0

Eloquent is Laravel's ORM (Object-Relational Mapping). It makes database work feel natural and easy. Instead of writing SQL, you work with PHP objects.

What is Eloquent?

Eloquent provides an ActiveRecord implementation for working with databases. Each database table has a corresponding Model that you use to interact with that table.

Creating Models

Models represent database tables. Create them with artisan command. Models go in app/Models folder. They extend Illuminate\Database\Eloquent\Model.

Basic CRUD Operations

Create, Read, Update, Delete - these are the basic database operations. Eloquent makes them simple and intuitive.

Relationships

Tables are often related. Eloquent makes defining relationships easy - hasOne, hasMany, belongsTo, belongsToMany. These are powerful features.

Query Builder

Eloquent provides a fluent query builder. You can chain methods to build complex queries. It's readable and maintainable.

Migrations

Migrations are version control for your database. They let you modify database structure and share changes with your team. Essential for professional development.

#Laravel#Eloquent#ORM#Database

Common Questions & Answers

Q1

How do I create and use Eloquent models?

A

Create model with: php artisan make:model ModelName -m (migration flag). Model extends Model class. Use static methods like User::all(), User::find($id), User::create(). Define $fillable or $guarded for mass assignment protection.

php
# Create model with migration
php artisan make:model User -m

# In app/Models/User.php
<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
}

# Using the model
use App\Models\User;

$users = User::all();
$user = User::find(1);

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

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

$user->delete();