Обновление API в laravel 5.7 - PullRequest
0 голосов
/ 11 марта 2019

У меня есть 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');

Почтальон - см. Изображение .

вывод в почтальоне:

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

Кто-нибудь может мне помочь?
Спасибо

Ответы [ 4 ]

2 голосов
/ 11 марта 2019

Я думаю, что вам нужно тщательно проверить все входные данные, при отправке формы он также поставляется с токеном, поэтому вам нужно сохранить все данные, кроме токена

Изменить это

$data = Input::all();

к этому

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

Я надеюсь, что это решит проблему.

0 голосов
/ 15 марта 2019

Вы можете использовать этот метод, он уменьшит ваш код

Маршрут (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'
    ]);
}
0 голосов
/ 11 марта 2019

Вы забыли запустить метод ->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'
    ]);
}
0 голосов
/ 11 марта 2019

в вашей модели добавить заполнить :

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'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...