Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “流明”;把「;请求不';t更新_Php_Laravel_Postman_Lumen - Fatal编程技术网

Php “流明”;把「;请求不';t更新

Php “流明”;把「;请求不';t更新,php,laravel,postman,lumen,Php,Laravel,Postman,Lumen,下面是更新MySQL表的代码片段。我正在用邮递员PUT请求测试我的后端。这段代码似乎没有正确地更新MySQL,相反,它将MySQL单元格设置为空值,即使我的POSTMAN结果中显示“更新成功” 下面是Lumen PHP代码 public function updateSensorPackage(Request $request, $id){ $sensorPackage = AddSensorPackage:: find($id); $sensorPackage -> elde

下面是更新MySQL表的代码片段。我正在用邮递员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”,并在请求体中发送参数。下面我粘贴了邮递员的“放置”请求

运行
dd($request->all())后我得到了下面的结果


我的PHP版本是7+,Lumen版本是5.5.2

您应该尝试发送POST请求,而不是PUT,然后在请求中添加一个新的参数,如下所示

_method=“PUT”

我不记得在哪里找到的,但它与底层的symfony请求类有关

编辑:找到了

您还可以使用“x-www-url-formurlencoded”设置邮递员发送请求参数


将参数写入

x-www-form-urlencode 

看魔术吧,它工作得很好。原因是laravel只是创建了一种PUT请求的感觉,它不能以表单数据或原始数据的形式给出

Accept: 'application/json'
'Content-Type': 'application/json'

尝试
$sensorPackage->update()instead@Hussein,不工作:)保留此更改并访问如下属性:
AddSensorPackage
$filleble
属性是否包含一个包含所有要更新字段的数组?@IvankaTodorova
$filleble
与批量分配有关,这不是他的情况在x-www-form-urlencoded的情况下,整个表单数据作为一个长查询字符串发送。查询字符串包含由&字符分隔的名称-值对,例如field1=value1&field2=value2等。您是对的,但该数据是经过编码的,因此无需担心。或者,您可以自己将值作为参数添加到查询字符串中。这实际上是一个更完整的响应