Mengapakah $request->all() mengembalikan tatasusunan kosong untuk permintaan PATCH dan PUT dengan data borang yang dihantar daripada Posman dalam aplikasi Laravel RESTFUL?

DDD
Lepaskan: 2024-10-24 17:46:02
asal
142 orang telah melayarinya

Why does $request->semua() mengembalikan tatasusunan kosong untuk permintaan PATCH dan PUT dengan data borang yang dihantar daripada Posmen dalam aplikasi Laravel RESTFUL? 
all() mengembalikan tatasusunan kosong untuk permintaan PATCH dan PUT dengan data borang yang dihantar daripada Posmen dalam aplikasi Laravel RESTFUL? " />

HTTP PATCH dan PUT Meminta Menghadapi Isu dengan Borang-Data Dihantar daripada Posmen

Dalam aplikasi Laravel RESTFUL, pengguna menghadapi cabaran apabila cuba menggunakan PATCH atau Permintaan PUT dengan data borang dihantar melalui Posman Secara khusus, kaedah $request->all() mengembalikan tatasusunan kosong, menghalang parameter daripada mencapai bahagian belakang.

Memahami Masalah

Untuk permintaan POST, $request->all() berfungsi seperti biasa apabila data-bentuk digunakan Walau bagaimanapun, untuk PATCH dan PUT, kaedah yang sama gagal untuk mendapatkan semula parameter yang dihantar daripada Posman ini berbeza dengan x-www-form-urlencoded, yang membenarkan $request->all() mengakses parameter untuk semua kaedah HTTP (PATCH, PUT, POST).

Menangani Isu

Penyelesaian yang disyorkan ialah menggunakan POST untuk mengemas kini model, tetapi penyelesaian ini menyimpang daripada amalan API RESTFUL standard Pendekatan yang lebih sesuai memerlukan pelarasan dalam Posman:

  1. Tetapkan Jenis Permintaan kepada. HTTP POST: Konfigurasikan permintaan Posmen sebagai kaedah HTTP POST.
  2. Sertakan Operasi PUT: Dalam permintaan, masukkan medan tersembunyi bernama _method dengan nilai "PUT." Tindakan ini meniru permintaan PUT semasa menggunakan kaedah POST.

Contoh:

Permintaan Posmen:

POST /testimonials/{testimonial}

x-www-form-urlencoded

_method=PUT
Salin selepas log masuk

Kaedah Pengawal:

<code class="php">public function update(Testimonial $testimonial, Request $request)
{
    $testimonial->update($request->all());
}</code>
Salin selepas log masuk

Pendekatan ini membolehkan kejayaan pemindahan parameter daripada Posmen ke bahagian belakang, menyelesaikan isu PATCH dan PUT. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah ini menyimpang sedikit daripada prinsip RESTFUL, menggunakan POST untuk kedua-dua operasi POST dan PUT.

Atas ialah kandungan terperinci Mengapakah $request->all() mengembalikan tatasusunan kosong untuk permintaan PATCH dan PUT dengan data borang yang dihantar daripada Posman dalam aplikasi Laravel RESTFUL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!