[英]getParam retrieving null instead of user data
我正在尝试使用getParam将新用户注册发布到数据,我使用RestClient来测试每次是否检索到值都是null:
这是我放入正文中的json数据,我确实基于application / json添加了内容类型标头:
{
"email" : "test@test.com",
"username" : "test",
"password" : "123",
}
这是发布用户的代码(请注意,var_dump($ email),我用它只是为了检查$ email是否包含值,在修复后将被删除):
//add new user
$app->post('/user/add', function(Request $request, Response $response){
$email = $request->getParam('email');
$username = $request->getParam('username');
$password = $request->getParam('password');
$sql = "INSERT INTO users (email, username, password) VALUES (?, ?, ?)";
var_dump($email);
die ("end");
$conn = new Database();
$conn = $conn->createConnection();
$stmt = $conn->prepare($sql);
$stmt->bind_param('sss', $email, $username, $password);
$check = $stmt->execute();
$error = $stmt->error;
if ($check){
echo 'Added Successful';
}
if ($error != ''){
echo $error;
}
});
我通过/ calendar / add发布约会的操作相同,并且可以完美地工作,机器人发布方法是相同的,但是为什么发布用户没有获得价值?
getParam()仅用于查询参数,例如:yoururl.com?param1=value1
你必须用
$body = $request->getParsedBody();
echo $body['email'];
代替
DZDomi的答案不太准确,因为Request
类的getParam()
确实在内部调用getParsedBody()
方法。 它应与POST正文中的查询字符串或数据一起使用。
如果在发送POST请求时收到NULL,请确保将客户端设置为使用application/x-www-form-urlencoded
或multipart/form-data
。
我不了解RestClient,但是如果使用Postman ,则可以在Postman UI的“正文”选项卡上定义此信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.