description

Restore کردن دیتا

- 11 ماه پیش
توسط محمد امیر محمدی آپدیت شد
محمد ( 1052 تجربه )
11 ماه پیش

من میخام وقتی کاربر مثلا مقاله ای را پاک میکنه یجایی در جدولی لیست مقالات پاک شده را ببینه و اگر خواست بتونه با انتخاب هر مقاله restore کنه.
میدونم که از Softdelete بایستی استفاده کرد اما خب نمیدونم چطوره و چه مدلی اطلاعات \اک شده را برگردونم.
ممنون میشم با تکه کدی یا نمونه پروژه ای من را راهنمایی کنید.

سیدعلی موسوی ( 8058 تجربه )
11 ماه پیش

در مدل مقالاتت، یک فیلد دیگه در تیبل ت اضاف کن بنام.
$table->softDeletes();

هرجا خواستی دلیت انجام بدی این متد
$flights = App\Flight::withTrashed()
->where('account_id', 1)
->get();

رو فراخونی کن.، یک فرمت تاریخ در فیلد softdelete اضاف میشه که لاراول در صورت پر بودن اون فیلد ، کل دیتا ردیف رو در نظر نمیگیره، شما برای باز گردانی فیلدات میتونی با اپدیت کردن دیتابیست و خالی کردن فیلدت در اصل بازگردانی رو انجام بدی،

$flight->restore();

لاراول وقتی اون فیلد خالی باشه ردیفت در دیتابیس رو هم حساب میکنه..

محمد امیر محمدی ( 1168 تجربه )
11 ماه پیش

در مدل مقالاتت، یک فیلد دیگه در تیبلت اضاف کن بنام.

$table->softDeletes();

هرجا خواستی دلیت انجام بدی این متد

$articles = AppArticle::withTrashed()
->where('account_id', ۱)
->get();

رو فراخونی کن.، یک فرمت تاریخ در فیلد deleted_at اضافه میشه که لاراول در صورت پر بودن اون فیلد ، کل دیتا ردیف رو در نظر نمیگیره، شما برای باز گردانی فیلدات میتونی با اپدیت کردن دیتابیست و خالی کردن فیلدت در اصل بازگردانی رو انجام بدی،

$articles->restore();

لاراول وقتی اون فیلد خالی باشه ردیفت در دیتابیس رو هم حساب میکنه..

"اصلاح کامنت دوستمون"

سیدعلی موسوی ( 8058 تجربه )
11 ماه پیش

متشکر دوست خوبم امیرجان

و جهت صحیح پیامم بگم که؛

فیلدی به نام deleted_at در دیتابیس منظوزم بود اشتباه بالا گفتم softdelete

متد حذف کردن هم همون تابع
delete()

اون تابع بالا برای گرفتن ایتم های حذف شده بود

محمد ( 1052 تجربه )
11 ماه پیش

account_id منظور چی هست؟

محمد امیر محمدی ( 1168 تجربه )
11 ماه پیش

البته میتونه جای account_id هرچیزی باشه.چون سلکت کردن هست دیگه.
ولی اینجا فکر کنم منظور دوستمون همون آی دی یوزری هست که این مقالات رو نوشته.

برای ارسال پاسخ باید وارد سایت شوید