Я пытаюсь отправить запрос на исправление из моей таблицы данных 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 req. в файле .vue:
Object.assign(this.machines[this.editedIndex], this.editedItem);
axios.patch("machines/" + this.editedItem.id, {
editedItem: this.editedItem
})
В разделе полезной нагрузки телескопа я получаю обновленный объект, но также получаю сообщение:
«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();
Но я все еще получаю ту же ошибку. Может ли кто-нибудь помочь мне или хотя бы указать мне правильное направление? Спасибо!
dd($request->all())
смотрели, не проходит ли что-нибудь? - person thisiskelvin   schedule 13.05.2019dd($request->all());
в контроллер, Telescope перестал регистрировать запрос на исправление. - person Pok3r Princ3   schedule 13.05.2019post
вместоpatch
? Не то чтобы это решение. - person thisiskelvin   schedule 13.05.2019id
визуально означаетupdate
. Без этого следует предполагать, что вы пытаетесьstore
новую запись. - person thisiskelvin   schedule 13.05.2019post
, но меня беспокоит то, что, по-видимому, данные каким-то образом теряются между vue и контроллером (я регистрирую их, когда отправляюpatch
req., И он там, он находится в Полезная нагрузка телескопа, но до БД не доходит. - person Pok3r Princ3   schedule 13.05.2019patch
наpost
и посмотреть, все ли работает так, как задумано. - person thisiskelvin   schedule 13.05.2019patch
наpost
как в axios req. & контроллер, но ведет себя так же, как и раньше. Я относительно новичок в подключении Laravel и mySQL к Vue, могу ли я предоставить дополнительную информацию, которая поможет в решении проблемы? - person Pok3r Princ3   schedule 13.05.2019this.close()
? Если да, то вашpatch
метод не имеет данных, переданных в качестве второго аргумента. - person thisiskelvin   schedule 13.05.2019this.close()
: `close () {this.dialog = false; setTimeout (() = ›{this.editedItem = this.editedItem; this.editedIndex = -1;}, 300); } `Однако я закомментировал это и просто вызываю` this.dialog = false; `закрыть диалоговое окно при сохранении - person Pok3r Princ3   schedule 13.05.2019this.close()
, так и методthis.dialog = false;
, но это не помогло. ; / - person Pok3r Princ3   schedule 13.05.2019patch
, на данный момент это только.patch("machines/" + this.editedItem.id)
, но должно быть.patch("machines/" + this.editedItem.id, { ... })
- person thisiskelvin   schedule 13.05.2019patch
метод: `axios .patch (machines / + this.editedItem.id, {editedItem: this.editedItem})` Я считаю, что передаю данные после идентификатора? Я считаю, что editedItem является объектом, и this.editedItem также является объектом, поэтому я передаю его вот так. Это неправильно ? - person Pok3r Princ3   schedule 13.05.2019patch
запрос так, результат тот же:axios .patch("machines/" + this.editedItem.id, { id: this.editedItem.id, machine_number: this.editedItem.machine_number, machine_name: this.editedItem.machine_name, machine_company: this.editedItem.machine_company, machine_division: this.editedItem.machine_division, machine_center: this.editedItem.machine_center, machine_speed: this.editedItem.machine_speed })
* Также пробовал сpost
. - person Pok3r Princ3   schedule 13.05.2019