Laravel 流明未正确更新

Laravel lumen doesn't update correctly

当我想用邮递员更新名字时,名字会被更新,但不会更新到我想要更新的名字。

例如,我想更新姓名:Jan 为 Pieter。 但是当我将 Pieter 这个名字放在邮递员中时,它会更新,但不会更新为 Pieter 这个名字。更新后的名称现在是 Tijn。

如果有帮助的话,这是我的代码

$router->put('dogs/{id}', function(Request $request, $id){
    $data=[];

    if ($request->has('name')){
        $data['name'] = $request->input('name');
    }

    $dog = DB::table('dogs')
        ->where('id', $id)
        ->update($data);

    return response()->json($dog);
});

获取整个请求正文并使用该数组更新字段不是一个好的做法,即使它们具有相同的名称也是如此。

尝试以下方法:

$dog = DB::table('dogs')
        ->where('id', $request->route()->parameter('id'))
        ->update(['name' => $request->input('name')]);

因为 ID 匹配可以解决您的问题。

此外,由于您提到邮递员,请记住您必须使用 x-www-form-urlencode 选项卡而不是正常的 form-data 来执行 PUTPATCH 操作。