Wie bekomme ich die raw-Daten in das Formular in laravel?
Ich habe ein Skript, das versucht, Daten zu senden, um meine Website mithilfe von HTTP PUT. Normalerweise, ich würde mich einfach abrufen, indem das Lesen aus dem Eingabe-stream mit file_get_contents('php://input')
. Jedoch, wenn ich versuche, das mit laravel, ich bekomme gar nichts! Warum nicht? Wie lese ich die raw-input-Daten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laravel fängt alle Eingaben. Wenn Sie PHP vor 5.6, die
php://input
stream kann nur einmal gelesen werden. Dies bedeutet, dass Sie benötigen, um die Daten aus dem Rahmen. Sie können dies tun, durch den Zugriff auf diegetContent
Methode auf dieRequest
Beispiel, wie diese:Seit
Illuminate\Request
erstrecktSymfony\Component\HttpFoundation\Request
, undgetContent
ist hier definiert: http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/Request.html#method_getContentRequest::getContent();
Können Sie auch
Request::json($key, $default);
um den Rückgabewert eines bestimmten Schlüssels in der json-payload.Updates für die neuesten Laravel (ich bin mit laravel 5.8), Fehler können auftreten, wenn mithilfe von
Request::getContent();
weil die neuesten Symfony-Anfrage-Modul (die zugrunde Laravel Anfrage-Modul) nicht mehrgetContent
als statische Methode. Stattdessen verwende ichRequest::createFromGlobals()->getContent();
.Referenz: https://symfony.com/doc/current/components/http_foundation.html#accessing-request-data