How to use Laravel Model Observers

2 years ago admin Laravel

In this lesson, we will see how to use Laravel model observers, a Laravel model observer is used to listen to an event for a given model for example: create, update, or delete.


Create observers

First, let's assume that we have a commenting system in our application and we want before a comment is created to add the user_id automatically using a model observer.

So let's create the observer:

                                                    
                                                                                                                
php artisan make:observer CommentObserver --model=Comment

Register an observer

Next, we register the observer inside the boot method of our application's service provider 'App\Providers\AppServiceProvider'.

                                                        
                                                                                                                        
<?php

namespace App\Providers;

use App\Models\Comment;
use App\Observers\CommentObserver;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        //
        Comment::observe(CommentObserver::class);
    }
}

Adding the user id

To add the user_id before a comment is created using the model observer let's use the code below:

                                                        
                                                                                                                        
<?php

namespace App\Observers;

use App\Models\Comment;

class CommentObserver
{
     
    /**
     * Handle the comment "creating" event.
     */
    public function creating(Comment $comment)
    {
        if (auth()->check()) {
            $comment->user_id = auth()->id();
        }
    }
}

Related Tuorials

Drag and Drop File Upload in React & Laravel — Step-by-Step Tutorial Part 2

In the second part of this tutorial, we will move to the frontend. First, we will create the upload...


Drag and Drop File Upload in React & Laravel — Step-by-Step Tutorial Part 1

In this tutorial, we will create a drag-and-drop file uploader using React 19 and Laravel 12. The us...


How to Add Query Parameters to Laravel Pagination

In this lesson, we will see how to add query parameters to Laravel pagination.Our goal in this lesso...


How to Add Query Parameters to Laravel Pagination with Vue 3 and Inertia.js

In this lesson, we will see how to add query parameters to Laravel pagination with Vue 3 and inertia...


How to Build a Shopping Cart in Laravel 12 (Step-by-Step) Part 3

In the third part of this tutorial, we will display the products on the home page and add, update, a...


How to Build a Shopping Cart in Laravel 12 (Step-by-Step) Part 2

In the second part of this tutorial, we will add the controllers we need with the function...


How to Build a Shopping Cart in Laravel 12 (Step-by-Step) Part 1

In this tutorial, we will Learn how to create a fully functional shopping cart in Laravel 12. The us...


How to Add a Relationship to a Select in Filament

In this lesson, we will see how to add a relationship to a select in Filament.Let's assume that we h...


How to Generate Slugs from a Title in Filament

In this lesson, we will see how to generate slugs from a title in Filament, Sometimes we need to gen...


How to Change the Order of the Filament Left Navigation Menu Items

In this lesson, we will see how to change the order of the filament left navigation menu items.Somet...