بخش هفتم - Events
ایونت ها به شما اجازه میدهند تا قبل و بعد از رخ دادن عملیاتهای مختلفی روی مدلها (مانند ایجاد، بهروزرسانی، حذف و غیره) کدهای دلخواهی را اجرا کنید. این قابلیت به شما امکان میدهد تا فرآیندهایی مانند ثبت لاگها، ارسال اعلانها، اعتبارسنجیها و سایر عملیات وابسته به مدلها را بهصورت خودکار و در لحظه مدیریت کنید.
لاراول رویدادهای مختلفی را برای مدلها فراهم میکند که میتوانید آنها را در هر مرحله از چرخه حیات یک مدل استفاده کنید. این رویدادها به شما اجازه میدهند قبل یا بعد از عملیاتی مانند ایجاد، بهروزرسانی، حذف یا بازگردانی رکوردها، کدهای سفارشی خود را اجرا کنید.
لیست رویدادهای Eloquent
1- رویداد retrieved
بعد از اینکه یک مدل از دیتابیس بازیابی شد، اجرا میشود.
2- رویداد creating
قبل از ایجاد یک رکورد جدید در دیتابیس اجرا میشود.
3- رویداد created
بعد از ایجاد یک رکورد جدید اجرا میشود.
4- رویداد updating
قبل از بهروزرسانی یک رکورد اجرا میشود.
5- رویداد updated
بعد از بهروزرسانی یک رکورد اجرا میشود.
6- رویداد saving
قبل از ذخیرهشدن (چه ایجاد و چه بهروزرسانی) یک مدل اجرا میشود.
7- رویداد saved
بعد از ذخیرهشدن یک مدل اجرا میشود.
8- رویداد deleting
قبل از حذف یک رکورد اجرا میشود.
9- رویداد deleted
بعد از حذف یک رکورد اجرا میشود.
10- رویداد restoring
قبل از بازگردانی یک رکورد حذفشده اجرا میشود.
11- رویداد restored
بعد از بازگردانی یک رکورد حذفشده اجرا میشود.
12- رویداد trashed
بعد از soft delete شدن یک رکورد اجرا می شود.
13- رویداد forceDeleting
قبل از حذف کامل حتی با وجود soft delete اجرا می شود.
14- رویداد forceDeleted
بعد از حذف کامل حتی با وجود soft delete اجرا می شود.
15- رویداد replicating
قبل از replicate شدن یک رکورد اجرا می شود.
برای استفاده از رویدادها در Eloquent، شما میتوانید از متد boot() در مدل خود استفاده کنید و در آن رویدادهای دلخواه را تعریف کنید.
protected static function boot()
{
parent::boot();
static::creating(function ($user) {
Log::info('Creating new user: ' . $user->name);
});
static::created(function ($user) {
Log::info('New user Created: ' . $user->name);
});
}
در این مثال:
در رویداد creating، لاگ مربوط به زمانی که یک کاربر جدید در حال ایجاد است ثبت میشود.
در رویداد created، لاگ مربوط به زمانی که یک کاربر با موفقیت ایجاد شد ثبت میشود.
▫️ 🟠
🔎 #laravel #لاراول #فصل_۴
💠 @AmirhDeveloper
.