Я пытаюсь создать полный REST API с Slim 3. С Slim 2 было довольно легко. Но теперь у меня есть некоторые проблемы.
Путь POST и PUT не работает. Я не могу получить параметры. Я нашел $request->getHeaders()
в документах, который работает, но вместо того, чтобы получить пример length
параметра, я получаю HTTP_LENGHT
и каждый параметр имеет этот префикс HTTP_.
Я нашел этот вопрос, но $request->getParsedBody()
возвращает пустой массив для меня.
Я тестирую свой API с помощью Advanced REST Client, и это пример того, что я отправляю в качестве запроса POST:
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
Я использую Slim 3.3.0.
Вот пример того, что я получаю с помощью $request->getHeaders()
:
["HTTP_START_LAT"]=> array(1) { [0]=> string(15) "56.865296679535" } ["HTTP_START_LNG"]=> array(1) { [0]=> string(15) "2.6423183977058" }
Одна странная вещь, если я попытаюсь сделать $request->hasHeader('length');
Я получаю значение моего параметра, поэтому это означает, что имя правильное. Я действительно не понимаю.
Я просто хочу получить массив параметров в $app->request->post()
использовался в Slim 2. *. Благодарю.
Мой .htaccess
:
RewriteEngine On RewriteBase /test RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] <files db.config.ini> deny from all </files>
ОК. Моя ошибка, я просто ошибся в тестировании. Я писал все свои параметры, поскольку заголовки образуют не форму данных …