sme/laravel-model-life-events

dev-master 2024-04-08 06:50 UTC

This package is auto-updated.

Last update: 2024-11-08 08:04:56 UTC


README

This library allows you to extend the work of Models life cycle methods in Laravel Framework

Install:

composer require sme/laravel-model-life-events

For example:

class Posts extends Model
{
	public static function booted() {

		self::deleted(function (self $model) {

			//  listening to the deletion event in the current model
			...

		});

	}

For this code, the listener will not work because the method calling the deleted event is missing from the Builder class

public static function deletePost(int $post_id) {
	return self::where('id', $post_id)->delete();
}

you can use the find($post_id) method then everything will work, but it is not always convenient

public static function deletePost(int $post_id) {
	$post = self::find($post_id);
	if ($post) {
		return $post->delete();
	}
}

To use the delete or update methods without additional first, find, etc. methods. You can use trait "HasEvents" in your models class

use SME\Laravel\Model\HasEvents;

class Posts extends Model
{
	use HasEvents;
	
	...

In this case, listeners such as "deleting" or "updating" are always called, and "deleted" or "updated" are called only if the request was successful