Maison >développement back-end >tutoriel php >**Pourquoi les requêtes PATCH et PUT avec FormData échouent-elles dans Laravel ?**

**Pourquoi les requêtes PATCH et PUT avec FormData échouent-elles dans Laravel ?**

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 18:13:461039parcourir

**Why Do PATCH and PUT Requests with FormData Fail in Laravel?**

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 :

  1. Dans Postman, créez une nouvelle requête et sélectionnez la méthode POST.
  2. Accédez à l'onglet « Corps » et sélectionnez « form-data » comme format de données.
  3. Ajoutez les paramètres souhaités dans les champs "Clé" et "Valeur".

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn