حذف رکورد در لاراول، در این مقاله اموزش استفاده از کوئری delete در Eloquent لاراول رو با مثال یاد خواهیم گرفت.
برای اینکه مطلب رو به شکل قابل فهم و کاربردی انتقال بدم با مثال پیش میریم.
برای حذف یک رکورد ما نیاز به دیتابیس، جدول و داده هایی آن نیاز داریم، بنابراین آنها رو ایجاد می کنم. اگر با نحوه پیکربندی و ایجاد دیتابیس در لاراول آشنا نیستید لطفا در دسته مقاله های آموزشی لاراول مباحث مربوطه رو مطالعه بفرمایید.
در این مثال من یک دیتابیس به نام “laravelapp” دارم با جدولی با نام “posts” که ساختار آن مطابق تصویر زیر هست.
از اونجا که می خوایم با Eloquent کار کنیم برای پردازش Delete یا حذف رکورد نیاز به Model داریم که یک مدل با نام “Post” هم ایجاد می کنیم.
خوب موارد مورد نیازم رو الان دارم بریم سراغ مراحل حذف رکورد.
مراحل حذف رکورد با Eloquent در لاراول
1) ما صفحه ای داریم که رکوردها در قالب جدول یا استایل های متفاوت دیگر در آن نمایش داده می شوند، در هر محتوا یک دکمه یا button برای حذف آن رکورد ایجاد می کنیم.
برای نمایش پیام حذف نیز از “session” برای دریافت پیامی که از طرف کنترلر استفاده میشه استفاده می کنم.(خط کد 12)
{{-- Delete Button --}}
{{-- Delete Message --}}
@if(session()->has('message'))
{{ session()->get('message') }}
@endif
2) کنترلری به نام “PostController” جهت مدیریت روت ها تعریف می کنیم و متد “destroy” رو که جهت حذف رکورد بر اساس “id” یا شناسه دریافتی هست رو به صورت زیر می نویسم.
public function destroy($id)
{
Post::destroy($id);
return redirect(route('blog.index'))->with('message', 'Post has been deleted.');
}
3) فایل روت “web.php” رو باز می کنم و روت های مربوط به پردازش های مختلف رو به شکل زیر می نویسم، در اینجا پرددازش اصلی که عملیات حذف می باشد از در خط کد 8 قرار دارد.
Route::prefix('/blog')->group(function () {
Route::get('/create', [PostController::class, 'create'])->name('blog.create');
Route::get('/', [PostController::class, 'index'])->name('blog.index');
Route::get('/{id}', [PostController::class, 'show'])->name('blog.show');
Route::post('/', [PostController::class, 'store'])->name('blog.store');
Route::get('/edit/{id}', [PostController::class, 'edit'])->name('blog.edit');
Route::patch('/{id}', [PostController::class, 'update'])->name('blog.update');
Route::delete('/{id}', [PostController::class, 'destroy'])->name('blog.destroy');
});
بدین شکل پس از حذف رکورد کاربر به صفحه نمایش محتوا هدایت میشه یا اگر در همان صفحه می باشد، صفحه رفرش خواهد شد و پیام “Post has been deleted” راا مشاهده خواهد کرد.
جمع بندی
در این مقاله سعی کردم آموزش حذف رکورد رو با استفاده از ابزار eloquent رو به همراه مثال توضیح بدم. امیدوارم این مطلب براتون مفید واقع شده باشه.
لطفا اگر نظر و پیشنهادی در خصوص مطالب و پیشبرد آنها دارید خوشحال میشم در قسمت دیدگاه ها مطرح بفرمایید.