Requêtes HTTP PATCH et PUT avec FormData dans Laravel
Dans les applications Laravel RESTful, il arrive souvent que les requêtes PATCH et PUT ne parviennent pas à récupérer data lorsqu'elles sont envoyées par Postman à l'aide de form-data.
Le problème
Lors de l'utilisation de form-data, la méthode $request->all() renvoie un tableau vide pour les requêtes PATCH et PUT. Cela empêche le backend de recevoir les paramètres attendus.
Solution
Pour résoudre ce problème, une solution de contournement est utilisée en convertissant la requête PUT ou PATCH en requête POST dans Postman :
En modifiant le type de requête dans Postman, les données seront envoyées avec succès sous forme de requête POST, même si il est acheminé sous forme de requête PATCH ou PUT.
Exemple
Pour une requête POST avec des données envoyées via form-data :
Route::post('testimonials/{testimonial}', 'TestimonialController@update');
Lors de l'utilisation de PATCH ou PUT avec des données de formulaire dans Postman :
// Request will be received as a POST request Route::patch('testimonials/{testimonial}', 'TestimonialController@update'); Route::put('testimonials/{testimonial}', 'TestimonialController@update');
Remarque :
Cette solution de contournement peut ne pas être conforme aux principes RESTful, car elle modifie effectivement le type de demande à POST. Cependant, il fournit une solution fonctionnelle pour transférer des données via des données de formulaire avec des requêtes PATCH et PUT.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!