Laravel 5: récupérer le tableau JSON à partir de $ request
Je suis un Laravel débutant et je suis de la conversion d'un php/jquery application de Laravel. Le code d'origine utilisé un tableau JSON avec un ajax POST, qui a été récupéré comme ceci:
$json = file_get_contents('php://input');
$data = json_decode($json,true);
Je suis en train de faire la même chose sur le POST, mais je ne vois pas de données à venir dans mon Laravel $demande de collecte. Est-il quelque chose de spécial que je dois faire pour récupérer les données JSON structuré comme ceci:
[
{ "name": "John", "location": "Boston" },
{ "name": "Dave", "location": "Lancaster" }
]
Voici mon ajax de jQuery code postal (avec codage en dur des données)
$.ajax({
type: "POST",
url: "/people",
data: '[{ "name": "John", "location": "Boston" }, { "name": "Dave", "location": "Lancaster" }]',
dataType: "json",
success:function(data) {
$('#save_message').html(data.message);
}
});
Voici le code dans mon Contrôleur qui reçoit le POST
public function store(Request $request)
{
dd($request->all());
}
Mais tout ce que j'obtiens est:
[]
Des idées sur comment je peux récupérer mes données?
source d'informationauteur Adam
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer votre appel Ajax de
changer le
dataType
àcontentType
et ajouter leprocessData
option.Pour récupérer le JSON charge utile à partir de votre contrôleur, utilisez:
au lieu de
C'est la façon dont c'est fait dans laravel 5.2 maintenant.
Juste une mention avec jQuery v3.2.1 et Laravel 5.6.
Cas 1: La JS objet affiché directement, comme:
Correspondant Laravel code PHP doit être:
Cas 2: La chaîne JSON posté, comme:
Correspondant Laravel code PHP doit être: