برنامه نویسی

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();

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا