首页 > 解决方案 > Laravel 流明没有正确更新

问题描述

当我想用邮递员更新名称时,名称将被更新,但不会更新为我想要更新的名称。

例如,我想更新名称:Jan to 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);
});

标签: phplaravellumen

解决方案


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

尝试以下方法:

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

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

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


推荐阅读