در این مطلب یاد میگیرید
- نکات لاراولی
01آموزش
یکی از قابلیتهای جالب Eloquent، متد saveQuietly() است.
فرض کن روی مدل User چند Observer داری که با هر تغییر کاربر، نوتیفیکیشن، لاگ یا عملیات دیگری اجرا میکنند.
اما یکجا میخواهی اطلاعات کاربر را تغییر بدهی بدون اینکه Eventهای مدل اجرا شوند:
$user = User::findOrFail(1);
$user->name = 'Hamid';
$user->saveQuietly();در این حالت تغییر در دیتابیس انجام میشود، اما Eventهایی مثل saving و saved اجرا نمیشوند.
حتی برای حذف و Restore هم نسخههای Quietly وجود دارد:
$user->deleteQuietly();
$user->restoreQuietly();User::withoutEvents(function () {
User::where('active', false)->delete();
});چرا کاربردی است؟
وقتی سیستم بزرگی داری و Observerهای زیادی روی مدلها فعال هستند، گاهی یک تغییر ساده میتواند زنجیرهای از عملیات ناخواسته ایجاد کند.
Quietly بهت اجازه میدهد دقیقاً مشخص کنی:
«این تغییر را انجام بده، ولی Eventهای مدل را اجرا نکن.»
یک قابلیت کوچک، اما در پروژههای بزرگ Laravel میتواند جلوی کلی عملیات اضافی و ناخواسته را بگیرد. ⚡