Laravel Model Created Event Example

By Hardik Savani November 5, 2023 Category : Laravel

Hi Developer,

This article goes in detailed on laravel model created event. We will look at an example of how to use model created event in laravel. I explained simply about how to use created event in laravel model. you can understand a concept of laravel created event model. Follow the below tutorial step of laravel created event in model.

In Laravel, you can use model events to perform actions when a model is being created, updated, deleted, etc. To demonstrate how to use the `created` event in a Laravel model, I'll provide you with an example. Let's assume you have a `Post` model, and you want to automatically call event after create post record. You can do this using the `created` event.

I will give you simple example of how to call created event in from model. so, let's see the very simple example:

Create Post Model:

1. Create the `Post` model using the Artisan command:

php artisan make:model Post

2. In the generated `Post` model, you can define the `created` event using the `static::created` method. Here's an example:



namespace App;

use Illuminate\Database\Eloquent\Model;

use Illuminate\Support\Str;

class Post extends Model


protected $fillable = ['title', 'content', 'slug'];


* Write code on Method


* @return response()


protected static function boot()



static::creating(function ($post) {

info('Creating event call: '.$post);

$post->slug = Str::slug($post->title);


static::created(function ($post) {

info('Created event call: '.$post);




Create Post Record:

In this example, when a new `Post` model is being created, the `creating` event is triggered, and we use a closure to generate a slug based on the `title` attribute. We're using the `Str::slug` method from Laravel to create a URL-friendly slug from the title.

3. Now, when you create a new `Post` instance and save it, the `creating` event will automatically set the slug for you. Here's how you can create a new post:



namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Post;

class PostController extends Controller



* Display a listing of the resource.


* @return \Illuminate\Http\Response


public function index(Request $request)


$post = Post::create([

'title' => 'This is Testing',

'content' => 'This is a Testing'





Now, you can run following controller code and you will find following log for calling creating event and created event as like the below:


[2023-10-20 14:37:26] local.INFO: Creating event call: {"title":"This is Testing","content":"This is a Testing"}

[2023-10-20 14:37:26] local.INFO: Created event call: {"title":"This is Testing","content":"This is a Testing","slug":"this-is-


I hope it can help you...

Tags :