在 laravel 5.7 中更新 API

Update API in laravel 5.7

我已经创建 API 更新我的项目详细信息,我在 POSTMAN 应用程序中对其进行了测试,它显示了成功消息,但在数据库中没有任何效果。
这是我的代码:

ProjectsController.php

public function UpdateProject($id)
{
    $data = Input::all();
    $q = Project::where('id',$id)->update($data);
    return response()->json([
        'code' => SUCCESS,
        'message' => 'Project data update successfully'
    ]);
}

api.php

Route::post('UpdateProject/{id}','ProjectsController@UpdateProject');

邮递员 - see image.

邮递员输出:

{
    "code": "200",
    "message": "Project data update successfylly"
}

谁能帮帮我?
谢谢

在您的模型中添加 fillable :

protected $fillable = ['name', 'project_group_id','number','ROM','address','city','state','zip','start_date','end_date','duration','description','timeline_type','project_type_id','project_category_id','office_id'];

您在更新数据后忘记了运行->save()方法:

public function UpdateProject($id)
{
    $data = Input::all();

    $q = Project::find($id)
    $q = $q->fill($data);
    $q->save();

    return response()->json([
        'code' => SUCCESS,
        'message' => 'Project data update successfully'
    ]);
}

我认为您需要仔细检查所有输入的详细信息,它在您提交表单时还带有令牌,因此您需要保存除令牌以外的所有详细信息

改变这个

$data = Input::all();

至此

$data = Input::except('_token');

我希望这能解决问题。

你可以使用这个方法,它会减少你的代码

路线(api)

Route::post('UpdateProject/{project}','ProjectsController@UpdateProject');

ProjectsController.php

public function UpdateProject(Request $request, Project $project)
{
    $data = $request->all();
    $project->update($data);
    return response()->json([
        'code' => SUCCESS,
        'message' => 'Project data update successfully'
    ]);
}