راکت
حل شده

حذف نرم در لاراول

3 پاسخ

سلام
یه سوالی داشتم در مورد اینکه وقتی یک رکوردی توی دیتابیس soft delete میشه در واقعا اون سطر توی دیتابیس میمونه و فقط فیلد deletedat اش پر میشه و با این حساب چجوری میشه سطر جدول های دیگه که از ایدی این سطر به عنوان foreign key استفاده میکردن رو پاک کرد
در واقع عمل on delete cascade دیگه کار نمیکنه

Masoomeh
Masoomeh
@zafari.ma.8
ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

چند تا کار میشه انجام داد

۱. رکوردهای مربوطه (روابط) رو به صورت دستی پاک کنی..
۲. از کلاسهای Observer استفاده کنی..
۳. از پکیج laravel-cascade-soft-deletes استفاده کنی..
۴. استفاده از Event-Listener های custom

احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

سلام
باید این عمل به صورت دستی انجام بشه، یعنی شما جدوالتون رو به هم ربط دادید، حالا مثلا میخواید کاربری رو با آیدی 1 پاک بکنید، فقط کافیه همچین کدی بنوسید :

$user = User::find($id);
$user->tasks()->delete();
$user->delete();

یعنی جداولی که به User مربوط هستن رو به صورت دستی مینویسید و پاک میکنید.

mohammad hossein
mohammad hossein
@mohammad0103

منم به همین مشکل خورده بودم درست شد

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام