目前正在使用 Slim Framework for PHP 研究 CRUD 方法,并使用 Postman 對其進行測驗。我已經能夠通過 Get 方法選擇全部或選擇單個物件,并且現在嘗試插入一個物件,這就是我的問題開始的地方。我一直在關注 YT 視頻(https://www.youtube.com/watch?v=FYQrMr7oDv0 24:48)只是為了了解一切,但是,youtuber 使用 $request->getParam('paramName')不是我可以使用的方法。我試過使用 $request->getParsedBody() 和 $request->getBody(),但是所有這些都沒有回傳。
下面是有問題的方法
$app->post('/users/add', function (Request $request, Response $response, array $args) {
$data = $request->getParsedBody();
$username = $data['username'];
$passhash = $data['passhash'];
$email = $data['email'];
$sql = "INSERT INTO user (username, passhash, email) VALUE (:username, :passhash, :email)";
try {
$db = new DB();
$conn = $db->connect();
$stmt = $conn->prepare($sql);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':passhash', $passhash);
$stmt->bindParam(':email', $email);
$result = $stmt->execute();
$db = null;
$response->getBody()->write(json_encode($result));
return $response
->withHeader('content-type', 'application/json')
->withStatus(200);
} catch (PDOException $e) {
$error = array (
"message" => $e->getMessage()
);
$response->getBody()->write(json_encode($error));
return $response
->withHeader('content-type', 'application/json')
->withStatus(500);
}
});
我應該如何獲取我正在嘗試使用 Postman 發布的資料,鏈接到https://i.stack.imgur.com/4foNu.png下面的 Postman 影像
uj5u.com熱心網友回復:
最終想通了,需要添加:
$app->addBodyParsingMiddleware();
創建app后,為了能夠決議JSON、表單資料和XML,需要添加這個中間件
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312531.html
