Masoomeh
3 سال پیش توسط Masoomeh مطرح شد
3 پاسخ

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

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


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
0

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

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


احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
0

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

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

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
0

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

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


mohammad hossein
@mohammad0103 10 ماه پیش مطرح شد
0

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


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

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