آخر تابستونت رو متفاوت کن 🌟 ۳۰٪ تخفیف + هدیه ۳ میلیونی 🎁😉
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ rahnama
ارور متود delete
rahnama حل شده توسط rahnama

سلام روز بخیر 

من از form  و @method ('DELETE ') هم استفاده کردم ولی همچنان   خطارو دریافت میکنم 

هرچی هم سرچ میکنم روش‌های مختلف رو امتحان کردم اما باز همینه 

البته روش اصلی که خود لاراول گفته همینه که استاد اسفاده کردن 

اما متاسفانه من نتیجه نگرفتم لطفا راهنمایی کنید 

ممنون از وقتی که میذارید.

Screenshot-(112)-GVju.png

 

@method('DELETE')
rahnama ۰۶ مهر ۱۴۰۲، ۱۱:۰۴
<form action="{{ route('admin.categories.delete',$category->id) }}" method="POST">
  @method('DELETE')
 <button type="submit" class="btn btn-default btn-icons"><i class="fa fa-trash"></i></button>
 </form>
rahnama ۰۶ مهر ۱۴۰۲، ۱۱:۰۵

چیزی که متوجه شدم 

البته برای من اینجوره😅

فکر میکنم بخاطر مرورگر باشه

در هر تغییر کد اول باید یکبار روت عوض بشه تا کد عمل کنه 

مثلا 

من بعد از نوشتن @method('delete')  

یکبار برگشتم به صفحه ی افزودن دستبه بندی 

بعد حذف رو اجرا کردم بدون مشکل و خطا  اعمال شد

همین پروسه  خطا و ... برای @csrf  هم اتفاق افتاد 

و بعد کد به درستی اجرا شد

اگر دلیل خاصی داره بگید لطفا.

بهترین پاسخ
rahnama ۰۶ مهر ۱۴۰۲، ۱۱:۲۳

سلام! خطایی که شما تجربه می‌کنید ممکن است به مشکلات مختلفی برگردد. اگر می‌خواهید از فرم و متد DELETE در Laravel استفاده کنید و با مشکل روبرو هستید، می‌توانید مراحل زیر را برای رفع مشکل انجام دهید:

1. **اطمینان حاصل کنید که از `@csrf` استفاده کرده‌اید:**
  در فرم‌هایی که از متد DELETE استفاده می‌کنند، شما باید از تگ `@csrf` استفاده کنید تا توکن CSRF به درخواست DELETE اضافه شود. این توکن برای امنیت برنامه استفاده می‌شود. اطمینان حاصل کنید که این تگ در فرم‌هایتان وجود دارد.

  مثال:
  ```html
  <form action="{{ route('route_name', $parameter) }}" method="POST">
      @csrf
      @method('DELETE')
      <!-- سایر فیلدهای فرم -->
      <button type="submit">حذف</button>
  </form>
  ```

2. **اطمینان حاصل کنید که مسیر صحیح استفاده شده است:**
  اطمینان حاصل کنید که مسیری که در `action` فرم‌تان تعیین کرده‌اید، با مسیری که در روت‌های Laravel تعریف کرده‌اید مطابقت دارد.

3. **بررسی کنید که متد DELETE در روت‌ها تعریف شده باشد:**
  در فایل `routes/web.php` یا `routes/api.php` مطمئن شوید که متد DELETE برای مسیر مربوطه تعریف شده باشد. مثلاً:

  ```php
  Route::delete('/your-route/{parameter}', 'YourController@deleteMethod')->name('route_name');
  ```

4. **بررسی موارد دیگر:**
  در صورتی که با انجام مراحل فوق مشکل همچنان ادامه دارد، می‌توانید خطاها و پیام‌های خطا را بررسی کنید تا دقیقتر بفهمید که مشکل از کجا ناشی می‌شود. همچنین، اطمینان حاصل کنید که در کنترلر متد DELETE به درستی تعریف شده و انجام مورد مورد نیاز را انجام می‌دهد.

در صورتی که باز هم مشکل دارید و اطلاعات بیشتری در مورد خطاها و روت‌ها دارید، می‌توانید جزئیات بیشتری ارائه دهید تا من بتوانم بهتر کمک کنم.

M.shehneh Sh ۰۷ مهر ۱۴۰۲، ۱۴:۵۶