在Slim Framework中通过url执行发布请求

时间:2018-03-26 09:14:47

标签: php slim

我正试图在苗条中发出post请求,我的意图是将数据插入到mysql数据库中。这是我第一次尝试这样做,很抱歉,如果我不能很好地解释自己。

这就是我所拥有的:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';
require "classes/Autoloader.php";

$app = new \Slim\App;

$app->post('/', function(Request $request, Response $response) use ($app) {

    $postVars = $request->getParsedBody();
    $id = $request->getAttribute('id');
    $steps = $request->getAttribute('steps');
    $date = $request->getAttribute('date');

    echo $id . $steps . $date;

    require_once "classes/Connection.php";
    $userdata = new Insert($dbh, $id, $steps, $date);
    $userdata->insert();
});
$app->run();

我的意图是获取值,并使用它们来插入数据,但我不断收到Slim的“找不到页面”错误。这是我正在尝试的网址:http://localhost/wp-api/?id=1&steps=12&date=8787

我做错了什么,或者这是正确的做法?

提前致谢!

编辑:按照Justal的回答,我在第10行更改了我的代码; $app->post('/'...具体而言。我现在得到Method not allowed. Must be one of: POST

编辑2:我更改了第12行(getQueryParams - &gt; getParsedBody),并使用了Postman,否则broswer会执行get请求(来源)以前的错误)。现在,它会将null值插入数据库中。

1 个答案:

答案 0 :(得分:0)

找不到

页面,因为您要求使用代码下方的post route.try。

所有数据都传入$ request对象。

$app->post('/', function(Request $request, Response $response) {

echo "<pre>";
print_r($request);
exit;    

});