Как передать данные из Vue в Laravel для запроса исправления? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь отправить запрос на исправление из моей таблицы данных Vuetify в Laravel, а затем в базу данных mySQL.

Вот различные фрагменты кода из моего controller.php, моего api.php и самого файла Vuetify:

api.php:

Route::patch('machines/{id}', [
    'as'   => 'machines/{id}',
    'uses' => 'MachineController@update'
]);

MachineController.php

$machines = Machine::find($request->id)->update();

фактическое требование к патчу axios. в файле .vue:

Object.assign(this.machines[this.editedIndex], this.editedItem);

axios.patch("machines/" + this.editedItem.id, {
    editedItem: this.editedItem
})

В разделе полезной нагрузки Telescope я получаю обновленный объект, но я также получаю сообщение:

"SQLSTATE [23000]: Нарушение целостности: 1048 Столбец не может быть нулевым.

Для всех столбцов.

Я также пробовал этот синтаксис для метода исправления:

if (this.editedIndex > -1) {
    Object.assign(this.machines[this.editedIndex], this.editedItem);
    axios
        .patch("machines/" + this.editedItem.id)
        .then(res => {
            this.editedItem = Object.assign({}, this.editedItem);
        })
        .catch(err => {
            console.log(err);
        });
} else {
    this.machines.push(this.editedItem);
}
this.close();

И я попытался настроить контроллер следующим образом:

$machines = Machine::find($request->id);
$machines->machine_number = $request->input('machine_number');
$machines->machine_name = $request->input('machine_name');
$machines->machine_company = $request->input('machine_company');
$machines->machine_division = $request->input('machine_division');
$machines->machine_center = $request->input('machine_center');
$machines->machine_speed = $request->input('machine_speed');
$machines->save();

Но я все еще получаю ту же ошибку. Может ли кто-нибудь помочь мне или, по крайней мере, указать мне правильное направление? Спасибо!

1 Ответ

0 голосов
/ 13 мая 2019

Я решил свою проблему: я передавал пустой объект с моим запросом axios.patch(), потому что я его неправильно настроил. Я изменил структуру объекта на key:value пары и вуаля, это сработало!

...