
ویرایش و حذف رکورد در لاراول LARAVEL 6
در این پست آموزش ویرایش Edit، حذف Delete و بروزرسانی Update رکورد (ویرایش اطلاعات در لاراول) لاراول LARAVEL 6 قرار داده شده است. ابتدا خاطر نشان می شویم که در همه فرم های لاراول باید از حمله CSRF یا حملات CSRF، فرم خود را محافظت نمایید. چنانچه مایل هستید اطلاعات کامل تری در مورد حملات هکری csrf کسب نمایید به مقاله ما در آدرس زیر مراجعه فرمایید:
کار با فرم ها و ثبت از طریق فرم در دیتابیس در لاراول 6
متد PUT , PATCH :
برای ویرایش اطلاعات در لاراول، باید از متد های PUT یا PATCH هم در فرم ویرایش و هم در تعریف Route در فایل web.php استفاده کرد:
<form action="/posts/{{$post->id}}/update" method="POST"> @method('PATCH') @csrf <div class="form-group"> <label for="title">post title:</label> <input name="title"type="text" value="{{ $post->title }}"> </div> <label for="description">post description:</label> <div class="form-group"> <textareaname="description" >{{ $post->description }} </textarea> </div> <button type="submit" class="btnbtn-primary">Update</button> </form>
اگر دقت کنید، در تگ form در قسمت method ما از متد POST استفاده کرده ایم نه PUT یا PATCH اما چرا؟
در واقع HTML از متد های put و patch و delete پشتیبانی نمی کند و عملا شما نمی توانید متد های put و patch و delete را در فرم های html استفاده کنید. برای رفع این مشکل یا محدودیت متد ها در فرم html، لاراول دستور داده در فرم های مربوط به ویرایش و حذف رکورد، در تگ form از متد POST استفاده کنید اما داخل فرم، اسم متد خود را بنویسید. چنانچه به سطر دوم فرم بالا نگاه کنید، خواهید دید که ما از طریق دستور blade لاراول تعیین کرده و به اسم PATCH نام گذاری کردیم.
@method('PATCH')
حذف Delete در لاراول
درمورد حذف در لاراول هم باید در تگ متد فرم از متد POST استفاده کنید اما داخل فرم با دستور blade زیر نوع متد را مشخص نمایید:
@method('DELETE')
متد های PUT ، PATCH و DELETE در لاراول در داخل form
در کل برای تعریف متد های PUT ، PATCH و DELETE در لاراول در داخل form روش های گوناگونی وجود دارد که در ادامه برخی از آن ها معرفی می شود.
روش اول
در این روش شما یک input از نوع مخفی ایجاد می کنید و مقادیر name و value را مطابق مثال بالا پر می کنید.
<input type="hidden" name="_method" value="PUT">
روش دوم
در این روش شما با استفاده از دستور echo در زبان php نوع متد را وارد می کنید.
<?php echo method_field('PUT'); ?>
روش سوم
این روش همان روش دوم است ولی با استفاده از blade.
{{ method_field('DELETE') }}
روش چهارم
به نظر بنده روش چهارم سریعتر و آسانتر است.
@method('PATCH')
تعریف route در فایل web.php
اما در تعریف route یا همان مسیر لاراول در فایل web.php شما باید صراحتا نوع متد یا همان اسم method را بیان نمایید:
Route::patch('/posts/{post}/update', 'PostController@update'); Route::delete('/posts/{post}/delete', 'PostController@destroy');
نکته مهم دیگری که در edit در لاراول مهم است این است که هر متدی که در داخل فرم با استفاده از 4 روش بالا استفاده می کنید باید همان متد نیز در تعریف route بکار برده شود. اما در کنترلر:
<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostControllerextends Controller { public function update(Request $request, Post $post) { $post->update($request->all()); } }
در متد update ابتدا از illuminate\Http\Request استفاده کردیم و از این کلاس یک نمونه در $request ذخیره نمودیم. به طور کلی شما در LARAVEL در تمامی فرم ها و عملیات ها، از Request استفاده می کنید. در مثال خودمان $requrst->all() تمام مقادیری است که به فرم داده ایم. چنانچه از این عبارت یعنی $request->all() ، dd() بگیرید خواهید دید که همه مقادیر فرم در Request ذخیره گردیده است:
array:4 [▼ "_method" => "PATCH" "_token" => "z4rpP1CTL1x8AL7AaoWOOArDH8bCr2hZYEJP2W8h" "title" => "post two" "description" => "This is my second post its updated." ]
توکن مربوط به csrf و متد درخواست و مقدار input ای که نامش title است و همین طور مقدار ورودی به نام description و این عالی است. شما می توانید از $request نهایت استفاده را بکنید. حال برای ویرایش یا update تنها کافیست از دستور گفته شده در بالا در قسمت کنترلر استفاده نمایید:
$post->update($request->all());
و یا برای حذف :
<?php namespace App\Http\Controllers; use App\Models\Post; class PostControllerextends Controller { public function destroy(Post $post) { $post->delete(); } }
آنچه در جلسه ویرایش اطلاعات در لاراول خواهید آموخت:
شما بعد از مشاهده ویدیو آموزش ویرایش اطلاعات در لاراول، قادر خواهید بود فرم های EDIT و DELETE را در لاراول طراحی کرده، از فرم در برابر حملات CSRF محافظت کنید. نوع متد لازم را مطابق دستورات LARAVEL تعیین، سپس اقدام به route نویسی و حتی نامگذاری route مورد نظر نمایید. در این راستا از Route Model Binding استفاده بسیار خواهید کرد پس چنانچه اطلاعاتی در این مورد ندارید و مایل به یادگیری کامل و آسان Route Model Binding هستید به مقاله جلسه قبلی مراجعه فرمایید.
آموزش روت مدل بایندینگ ROUTE MODEL BINDING در لاراول 6
منابع
https://www.5balloons.info/how-to-use-putpatch-and-delete-method-in-laravel-5-/
https://laravel.com/docs/5.8/routing
برای مشاهده جلسه دوازدهم (سیستم احراز هویت در لاراول 6) کلیک کنید.
مشخصات فیلم آموزشی
نام اثر : فیلم آموزش صفر تا صد لاراول – جلسه یازدهم: ویرایش Edit، حذف Delete و بروزرسانی Update رکورد
مدرس : مهندس سالار عباپور
مدت زمان : 27 دقیقه
زبان آموزش : فارسی
حجم فایل : یک فایل با حجم 41 مگا بایت
فرمت ویدئو : MP4 با کیفیت بالا
پیش نمایش
درباره فیلم آموزشی ویرایش اطلاعات در لاراول
فیلم آموزش صفر تا صد لاراول – جلسه یازدهم: ویرایش Edit، حذف Delete و بروزرسانی Update رکورد در لاراول 6 محصولی است که در این پست به آن پرداخته شده است. در این آموزش به توضیح و معرفی عملیات های ویرایش Edit، حذف Delete و بروزرسانی Update رکورد توضیح داده شده است. این محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد.
تاریخ انتشار: | 19 مهر 1398 |
---|---|
تاریخ بروزرسانی: | 3 اردیبهشت 1399 |
حجم فایل: | 41 مگابایت |
فرمت فایل | mp4 |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | laravel7 |
تاکنون 2 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 29,000 تومان
تاریخ انتشار: | 19 مهر 1398 |
---|---|
تاریخ بروزرسانی: | 3 اردیبهشت 1399 |
حجم فایل: | 41 مگابایت |
فرمت فایل | mp4 |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | laravel7 |
1 بازخورد (مشاهده نظرات)
قیمت: 29,000 تومان
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.