Lumen "PUT" 请求未更新
Lumen "PUT" request doesn't update
我有下面的代码片段来更新 MySQL table。我正在使用 POSTMAN PUT 请求测试我的 back-end。此代码似乎没有正确更新 MySQL,而是将 MySQL 单元格设置为空值,即使我在 POSTMAN 结果中得到 "Updated Successfully"。
下面是LumenPHP代码
public function updateSensorPackage(Request $request, $id){
$sensorPackage = AddSensorPackage:: find($id);
$sensorPackage -> elderly_id = $request -> input('elderly_id');
$sensorPackage -> centre_id = $request -> input('centre_id');
$sensorPackage -> package_id = $request -> input('package_id');
$sensorPackage -> beacon_id = $request -> input('beacon_id');
$sensorPackage -> created_by = $request -> input('created_by');
$sensorPackage -> save();
return response('Updated Successfully', 200);
}
我将 POSTMAN header 设置为 "Content-type : Application/json" 并在请求 body 中发送参数。下面我粘贴了 POSTMAN "PUT" 请求。
在运行 dd($request->all());
之后我得到了下面的结果
我的PHP版本是7+,Lumen版本是5.5.2
您应该尝试发送 POST 请求而不是 PUT,然后在请求中添加一个类似这样的新参数。
_method = "PUT"
我不记得是在哪里找到的,但它与底层的 symfony 请求有关 class。
编辑:找到了。
也可以设置Postman使用'x-www-url-formurlencoded'发送请求参数
https://laravel.io/forum/02-13-2014-i-can-not-get-inputs-from-a-putpatch-request
把你的参数写在
x-www-form-urlencode
看到了魔法,它起作用了fine.The原因是laravel只是创建了一种 PUT 请求的感觉,它不能以表单数据或原始数据的形式给出
取消链接get方法你需要定义header
Accept: 'application/json'
'Content-Type': 'application/json'
我有下面的代码片段来更新 MySQL table。我正在使用 POSTMAN PUT 请求测试我的 back-end。此代码似乎没有正确更新 MySQL,而是将 MySQL 单元格设置为空值,即使我在 POSTMAN 结果中得到 "Updated Successfully"。
下面是LumenPHP代码
public function updateSensorPackage(Request $request, $id){
$sensorPackage = AddSensorPackage:: find($id);
$sensorPackage -> elderly_id = $request -> input('elderly_id');
$sensorPackage -> centre_id = $request -> input('centre_id');
$sensorPackage -> package_id = $request -> input('package_id');
$sensorPackage -> beacon_id = $request -> input('beacon_id');
$sensorPackage -> created_by = $request -> input('created_by');
$sensorPackage -> save();
return response('Updated Successfully', 200);
}
我将 POSTMAN header 设置为 "Content-type : Application/json" 并在请求 body 中发送参数。下面我粘贴了 POSTMAN "PUT" 请求。
在运行 dd($request->all());
之后我得到了下面的结果
我的PHP版本是7+,Lumen版本是5.5.2
您应该尝试发送 POST 请求而不是 PUT,然后在请求中添加一个类似这样的新参数。
_method = "PUT"
我不记得是在哪里找到的,但它与底层的 symfony 请求有关 class。
编辑:找到了。
也可以设置Postman使用'x-www-url-formurlencoded'发送请求参数
https://laravel.io/forum/02-13-2014-i-can-not-get-inputs-from-a-putpatch-request
把你的参数写在
x-www-form-urlencode
看到了魔法,它起作用了fine.The原因是laravel只是创建了一种 PUT 请求的感觉,它不能以表单数据或原始数据的形式给出
取消链接get方法你需要定义header
Accept: 'application/json'
'Content-Type': 'application/json'