DEV Community

Cover image for Introduction to Eloquent ORM in Laravel
Rohit Dhiman
Rohit Dhiman

Posted on

Introduction to Eloquent ORM in Laravel

When developers start learning Laravel, one of the first things they hear about is Eloquent ORM. And for good reason.

Eloquent is one of the features that makes Laravel extremely developer-friendly. Instead of writing complex SQL queries, you can interact with your database using simple and expressive PHP code.

In this article, we'll explore what Eloquent ORM is, why it exists, and how beginners can start using it effectively.


What is Eloquent ORM?

Eloquent is Laravel's Object-Relational Mapper (ORM).

An ORM allows developers to work with database records using objects and models instead of raw SQL queries.

In simple terms:

Database Concept Laravel Equivalent
Table Model
Row Object
Column Attribute

For example:

  • users table → User model
  • posts table → Post model

Each row from the table becomes a PHP object that you can interact with in your application.


Why Eloquent Exists

Traditional database interaction often looks like this:

  • Writing long SQL queries
  • Managing database connections
  • Handling repetitive CRUD operations
  • Writing boilerplate code

Eloquent simplifies this by providing a clean and expressive syntax.

Instead of writing raw SQL like:

SELECT * FROM posts;
Enter fullscreen mode Exit fullscreen mode

You can simply write:

Post::all();
Enter fullscreen mode Exit fullscreen mode

This makes your code:

  • More readable
  • Easier to maintain
  • Faster to develop

Creating a Model in Laravel

In Laravel, each database table typically has a corresponding model.

You can generate a model using the Artisan command:

php artisan make:model Post
Enter fullscreen mode Exit fullscreen mode

This creates a model file inside:

app/Models/Post.php
Enter fullscreen mode Exit fullscreen mode

A basic model looks like this:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = [
        'title',
        'content'
    ];
}
Enter fullscreen mode Exit fullscreen mode

The $fillable property defines which fields can be mass assigned.


Basic CRUD Operations with Eloquent

One of the biggest advantages of Eloquent is how easily you can perform CRUD operations.

Creating a Record

Post::create([
    'title' => 'My First Post',
    'content' => 'Learning Eloquent ORM'
]);
Enter fullscreen mode Exit fullscreen mode

Fetching Records

$posts = Post::all();
Enter fullscreen mode Exit fullscreen mode

Fetching a single record:

$post = Post::find(1);
Enter fullscreen mode Exit fullscreen mode

Updating a Record

$post = Post::find(1);

$post->update([
    'title' => 'Updated Title'
]);
Enter fullscreen mode Exit fullscreen mode

Deleting a Record

$post = Post::find(1);
$post->delete();
Enter fullscreen mode Exit fullscreen mode

Understanding Eloquent Relationships

Modern applications rely heavily on relationships between tables.

Eloquent makes handling relationships extremely simple.

Common relationships include:

  • One to One
  • One to Many
  • Many to Many

For example, a User can have many Posts.

public function posts()
{
    return $this->hasMany(Post::class);
}
Enter fullscreen mode Exit fullscreen mode

Now you can fetch posts like this:

$user->posts;
Enter fullscreen mode Exit fullscreen mode

This approach keeps your code clean and intuitive.


Security Benefits

Eloquent also provides several built-in protections:

  • Protection against SQL injection
  • Mass assignment protection
  • Automatic query binding
  • Safer database interactions

These features help developers build secure applications without writing extra security layers for every query.


Why Developers Love Eloquent

Eloquent is widely loved in the Laravel community because it:

  • Provides clean and readable syntax
  • Reduces repetitive database code
  • Simplifies relationships between tables
  • Makes development faster
  • Improves maintainability

For beginners, it removes the fear of writing complex database queries.

For experienced developers, it helps build well-structured and scalable applications.


Final Thoughts

Eloquent ORM is one of the core reasons why Laravel feels so elegant to work with.

Instead of constantly thinking in SQL queries, developers can focus on application logic while Eloquent handles database interactions in the background.

If you're learning Laravel, mastering Eloquent is an essential step in becoming a strong backend developer.

Start with simple models, practice CRUD operations, explore relationships, and you will quickly see why Eloquent is such a powerful tool.

Top comments (1)

Collapse
 
roman_shalabanov_e53b30b6 profile image
Roman Shalabanov

If I were to write an article about Eloquent ORM, I'd make sure to mention polymorphic relationships.

It's not exactly beginner level, but it definitely shows the ORM's power to those who start their Laravel journey.

With polymorphic relations, you can link records to different models through the same relation at the same time. For example, Products and Posts can both have Comments with IDs and descriptions, so you don't need to store comments separately. Furthermore, a developer can set aliases for the relation and change model names in the future.