我有以下代码片段来更新MySQL表。我正在使用POSTMAN PUT请求测试我的后端。此代码似乎没有正确更新MySQL,而是将MySQL单元格设置为空值,即使我在POSTMAN结果中获得“已成功更新”。
以下是Lumen PHP代码
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标头设置为“Content-type:Application / json”并在请求正文中发送参数。下面我贴了POSTMAN“PUT”请求。
运行dd($request->all());
后,我得到了以下结果
我的PHP版本是7+,流明版本是5.5.2
答案 0 :(得分:4)
在
中写下您的参数x-www-form-urlencode
看到魔术,它的工作正常。原因是laravel只是创建一个PUT请求的感觉,它不能在表单数据或原始数据中给出
答案 1 :(得分:1)
您应该尝试发送POST请求而不是PUT,然后在请求中添加这样的新参数。
_method =“PUT”
我不记得我发现了什么,但它与底层的symfony请求类有关。
编辑:发现它。你也可以设置Postman使用'x-www-url-formurlencoded'发送请求参数
https://laravel.io/forum/02-13-2014-i-can-not-get-inputs-from-a-putpatch-request
答案 2 :(得分:0)
取消链接定义标题所需的获取方法
Accept: 'application/json'
'Content-Type': 'application/json'