Permintaan HTTP PATCH dan PUT dengan FormData dalam Laravel
Dalam aplikasi Laravel RESTful, sering dijumpai permintaan PATCH dan PUT gagal untuk mendapatkan semula data apabila dihantar daripada Posmen menggunakan form-data.
Isunya
Apabila menggunakan form-data, kaedah $request->all() mengembalikan tatasusunan kosong untuk permintaan PATCH dan PUT. Ini menghalang bahagian belakang daripada menerima parameter yang dijangkakan.
Penyelesaian
Untuk menyelesaikan isu ini, penyelesaian digunakan dengan menukar permintaan PUT atau PATCH kepada permintaan POST dalam Posmen:
Dengan mengubah suai jenis permintaan dalam Posmen, data akan berjaya dihantar sebagai permintaan POST, walaupun ia sedang dihalakan sebagai permintaan PATCH atau PUT.
Contoh
Untuk permintaan POST dengan data dihantar melalui borang-data:
Route::post('testimonials/{testimonial}', 'TestimonialController@update');
Apabila menggunakan PATCH atau PUT dengan borang-data dalam Posmen:
// Request will be received as a POST request Route::patch('testimonials/{testimonial}', 'TestimonialController@update'); Route::put('testimonials/{testimonial}', 'TestimonialController@update');
Nota:
Penyelesaian ini mungkin tidak mematuhi prinsip RESTful, kerana ia secara berkesan mengubah jenis permintaan untuk POST. Walau bagaimanapun, ia menyediakan penyelesaian berfungsi untuk memindahkan data melalui borang-data dengan permintaan PATCH dan PUT.
Atas ialah kandungan terperinci **Mengapa Permintaan PATCH dan PUT dengan FormData Gagal dalam Laravel?**. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!