Laravel Eloquent ORM در Bangla Part-6 (حذف مدل ها)

لاراول Eloquent-এ حذف مدل ها برای حذف رکوردها از پایگاه داده استفاده می شود. این یک راه آسان و موثر برای حذف داده ها ارائه می دهد. در زیر روش های حذف مدل ها به روش های مختلف آورده شده است.
1. حذف یک مدل واحد
delete()
حذف با استفاده از روش
delete()
یک روش می تواند برای حذف یک رکورد خاص از پایگاه داده استفاده شود.
use App\Models\Post;
// রেকর্ড খুঁজে বের করুন
$post = Post::find(1);
// ডিলিট করুন
$post->delete();
توجه: پس از حذف رکورد دیگر در پایگاه داده وجود نخواهد داشت.
2. حذف چندین رکورد
delete()
روش و where
با استفاده از
برای حذف چندین رکورد where
با شرایط delete()
استفاده می شود.
use App\Models\Post;
// স্ট্যাটাস 'draft' এর সকল রেকর্ড ডিলিট করুন
Post::where('status', 'draft')->delete();
. destroy()
با استفاده از روش
destroy()
یک یا چند رکورد را می توان با استفاده از روش حذف کرد.
use App\Models\Post;
// একক রেকর্ড ডিলিট করুন
Post::destroy(1);
// একাধিক রেকর্ড ডিলিট করুন
Post::destroy([2, 3, 4]);
توجه: ()struct به طور مستقیم رکوردها را با استفاده از کلید اصلی حذف می کند.
4. مدیریت رویداد در هنگام حذف
هنگام حذف یک مدل Eloquent رویدادهای مدل تحریک می شود.
-
deleting
رویداد: قبل از حذف رکورد فعال می شود. -
deleted
رویداد: پس از حذف رکورد فعال می شود.
class Post extends Model
{
protected static function booted()
{
static::deleting(function ($post) {
// ডিলিট হওয়ার আগে কিছু করুন
Log::info('Post is being deleted: ' . $post->id);
});
static::deleted(function ($post) {
// ডিলিট হওয়ার পরে কিছু করুন
Log::info('Post deleted: ' . $post->id);
});
}
}
5. نرم حذف می کند
حذف نرم چیست؟
- به جای حذف فیزیکی رکوردها از طریق حذف نرم،
deleted_at
مهر زمانی حذف در ستون ذخیره می شود. - در مدل ها از حذف نرم استفاده کنید
SoftDeletes
صفات باید اضافه شود.
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}
حذف نرم
use App\Models\Post;
// সফট ডিলিট করুন
$post = Post::find(1);
$post->delete(); // `deleted_at` কলামে টাইমস্ট্যাম্প যুক্ত হবে
رکوردهای پاک شده نرم را بازیابی کنید
// সফট ডিলিট হওয়া রেকর্ড ফেচ করুন
$post = Post::withTrashed()->find(1);
// পুনরুদ্ধার করুন
$post->restore();
حذف اجباری
Soft Delete برای حذف کامل رکورد forceDelete()
استفاده می شود.
$post->forceDelete(); // রেকর্ড সম্পূর্ণরূপে ডিলিট হবে
پرس و جو از رکوردهای پاک شده نرم
من) withTrashed()
برای بازیابی رکوردهای حذف شده و غیر نرم افزاری:
$posts = Post::withTrashed()->get();
ii) onlyTrashed()
فقط برای بازیابی سوابق پاک شده نرم:
$trashedPosts = Post::onlyTrashed()->get();
6. حذف مستقیم از پایگاه داده
لاراول DB
رکوردها را می توان مستقیماً با پرس و جوهای SQL با استفاده از نماها حذف کرد.
use Illuminate\Support\Facades\DB;
// সরাসরি SQL কুয়েরি
DB::table('posts')->where('status', 'draft')->delete();