بازگشت به آموزش‌ها
نکته فنیLaravel

قابلیتی در Laravel که احتمالاً کمتر از چیزی که باید استفاده می‌کنی! 🚀

متد saveQuietly در Laravel یکی از قابلیت‌های کاربردی Eloquent است که امکان ذخیره تغییرات مدل بدون اجرای Eventها و Observerها را فراهم می‌کند. در این مقاله با نحوه استفاده و کاربردهای آن آشنا می‌شویم.

2 دقیقهسطح متوسط07/06/1405

در این مطلب یاد می‌گیرید

  • نکات لاراولی

01آموزش

یکی از قابلیت‌های جالب Eloquent، متد saveQuietly() است.

فرض کن روی مدل User چند Observer داری که با هر تغییر کاربر، نوتیفیکیشن، لاگ یا عملیات دیگری اجرا می‌کنند.

اما یک‌جا می‌خواهی اطلاعات کاربر را تغییر بدهی بدون اینکه Eventهای مدل اجرا شوند:

InvoiceService.php
$user = User::findOrFail(1);
$user->name = 'Hamid';
$user->saveQuietly();

در این حالت تغییر در دیتابیس انجام می‌شود، اما Eventهایی مثل saving و saved اجرا نمی‌شوند.

حتی برای حذف و Restore هم نسخه‌های Quietly وجود دارد:

CustomerService.php
$user->deleteQuietly();
$user->restoreQuietly();
و اگر بخواهی یک بخش کامل از کد بدون هیچ Model Event اجرا شود:
php
User::withoutEvents(function () { 
User::where('active', false)->delete();
});

چرا کاربردی است؟

وقتی سیستم بزرگی داری و Observerهای زیادی روی مدل‌ها فعال هستند، گاهی یک تغییر ساده می‌تواند زنجیره‌ای از عملیات ناخواسته ایجاد کند.

Quietly بهت اجازه می‌دهد دقیقاً مشخص کنی:

«این تغییر را انجام بده، ولی Eventهای مدل را اجرا نکن.»

یک قابلیت کوچک، اما در پروژه‌های بزرگ Laravel می‌تواند جلوی کلی عملیات اضافی و ناخواسته را بگیرد. ⚡

ایده‌ای داری؟ بیا آن را به یک محصول واقعی تبدیل کنیم.

فرقی نمی‌کند در ابتدای مسیر باشید یا نیاز به بازسازی یک سیستم قدیمی داشته باشید؛ اولین جلسه مشاوره فنی رایگان است.

تماس مستقیم