PHP

Automating Tasks with Eloquent Model Observers

Learn to use Eloquent Observers to perform actions automatically when model events like creating, updating, or deleting occur, centralizing business logic.

<?php

namespace App\Observers;

use App\Models\User;

class UserObserver
{
    /**
     * Handle the User "created" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function created(User $user)
    {
        // Logic to run after a user is created
        // e.g., send a welcome email, create a default profile
        
        // Example: Log the creation
        
        
    }

    /**
     * Handle the User "updated" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function updated(User $user)
    {
        // Logic to run after a user is updated
        // e.g., audit changes, clear cache
        
    }

    // ... other methods like `saving`, `deleting`, `restored`, etc.
}

// In App\Providers\EventServiceProvider.php (boot method):
// use App\Models\User;
// use App\Observers\UserObserver;

// User::observe(UserObserver::class);
How it works: Eloquent Observers provide a clean way to group listeners for model events. Instead of defining multiple event listeners for a single model, an observer class contains methods corresponding to various model lifecycle events (e.g., `created`, `updated`, `deleted`, `saving`, `retrieved`). This snippet shows a `UserObserver` with `created` and `updated` methods. Once registered in your `EventServiceProvider`, these methods will automatically execute whenever a `User` model is created or updated, centralizing related business logic and keeping your models thinner.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs