Ich versuche eine vollständige REST API mit Slim 3 zu erstellen. Es war ziemlich einfach mit Slim 2. Aber jetzt habe ich ein paar Probleme.Get POST PUT Parameter mit Slim 3
Die POST und PUT Route funktioniert nicht erwartet hat. Ich kann die Parameter nicht bekommen. Ich fand die $request->getHeaders()
auf den Dokumentationen, die funktioniert, aber anstatt zum Beispiel den Parameter length
bekommen, bekomme ich HTTP_LENGHT
und jeder Parameter hat diese HTTP_ Präfix.
Ich fand diese question aber $request->getParsedBody()
geben Sie ein leeres Array für mich zurück.
Ich teste meine API mit Advanced REST Client und dies ist ein Beispiel dafür, was ich als POST-Anfrage senden:
POST /test/barrier HTTP/1.1
HOST: mydomain.com
start_lng: 2.6423183977058
start_lat: 56.865296679535
type: Something
comment: testcomment
due_date: null
content-type: application/x-www-form-urlencoded
I Slim 3.3.0 mit bin. Hier
ist ein Beispiel dafür, was ich mit $request->getHeaders()
:
["HTTP_START_LAT"]=>
array(1) {
[0]=>
string(15) "56.865296679535"
}
["HTTP_START_LNG"]=>
array(1) {
[0]=>
string(15) "2.6423183977058"
}
Eine seltsame Sache ist, wenn ich versuche, $request->hasHeader('length');
ich den Wert meiner Parameter zu erhalten, so dass Mittel, den Namen richtig sind. Ich verstehe es wirklich nicht.
Ich möchte nur das Array der Parameter wie $app->request->post()
in Slim 2 *. Vielen Dank.
Mein .htaccess
ist wie folgt:
RewriteEngine On
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [QSA,L]
<files db.config.ini>
deny from all
</files>
Sie sollten wahrscheinlich die Daten als POST Körper und nicht Überschriften senden. –
@Mika Ja ... Genau ... Ich war mir sicher, dass es sich um einen Fehler im eigentlichen Code handelte und nicht nur um einen menschlichen Fehler, haha. Klassische Art, Zeit zu verlieren. – TDK