流明“PUT”请求不会更新

时间:2018-05-28 07:44:35

标签: php laravel postman lumen

我有以下代码片段来更新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”请求。

enter image description here

运行dd($request->all());后,我得到了以下结果

enter image description here

我的PHP版本是7+,流明版本是5.5.2

3 个答案:

答案 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'