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 `creating` 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 set a slug for a post before it is created. You can do this using the `creating` event.

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

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

php artisan make:model Post

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


<?php

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()
{
 parent::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);

});

}

}



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:

 

app/Http/Controllers/PostController.php

 

<?php

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'

]);

dd($post);

}

}

Categorized in:

Laravel,