آموزش استفاده از دلت نرم در لاراول laravel soft delete
آموزش استفاده از دلت نرم در لاراول laravel soft delete
فهرست مطالب
حذف نرم چیست؟
معمول است که کاربر در برنامه های شما اشتباه می کند و داده ها را به طور تصادفی حذف می کند - حتی اگر قبل از حذف رکورد از پایگاه داده شما هشدارهای بی شماری را به آنها نشان دهید. در سناریوهای دیگر می توانید مفهوم سطل زباله را که کاربرانتان از دسکتاپ خود می شناسند معرفی کنید و پس از مدتی سوابق سطل زباله را حذف کنید.
قابلیتی که به دنبال آن هستید حذف نرم در لاراول است. شما به سادگی می توانید یک ستون پایگاه داده جدید به مدل لاراول خود اضافه کنید و از ویژگی SoftDeletes در مدل خود استفاده کنید. پس از آن، شما می توانید بروید و حذف های نرم فوراً کار می کنند.
چگونه اینکار انجام می شود؟
بیایید فرض کنیم که می خواهید کاربران را پس از حذف حساب خود برای مدتی نگه دارید تا بتوانید آنها را بازیابی کنید. حذف نرمافزار را با یک ستون جدید در متد up() یک migration جدید به مدل User اضافه کنید:
Schema::table('users', function (Blueprint $table) {
$table->softDeletes();
});
ویژگی SoftDeletes را به مدل User اضافه کنید:
use Illuminate\Database\Eloquent\softDeletes;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable, SoftDeletes;
//...
}
خودشه. از این پس، وقتی روش حذف را روی یک کاربر اجرا میکنید، برنامه شما دیگر کاربران را از پایگاه داده حذف نمیکند، اما تاریخ حذف این کاربر را تعیین میکند. اگر این تاریخ تنظیم شده باشد، میتوانید از پرسوجوهای Eloquent مانند قبل استفاده کنید و این مدلها نادیده گرفته میشوند - حذف نرم به این معنی است. حذف آنها از جستارهای معمولی در جایی که به صراحت آنها را درخواست نمی کنید.
انجام حذف نرم
برای پاک کردن نرم به صورت زیر عمل می شود.
User::first()->delete();
نمایش همه اطلاعات
اگر بخواهیم همه اطلاعات حذف شده و نشده را نشان دهیم باید به صورت زیر بنویسیم
User::withTrashed()->count();
بازگرداندن رکورد حذف شده
برای بازگرداند اطلاعات حذف شده به صورت زیر عمل می شود.
User::withTrashed()->where('id', 1)->restore();
حذف دائم اطلاعات
برای حذف دائم رکورد به صورت زیر عمل می شود.
User::first()->forceDelete();
-