如何将数据从 Vue 传递到 Laravel 以进行补丁请求?
How to pass data from Vue to Laravel for patch request?
我正在尝试从我的 Vuetify 数据 table 向 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]:
Integrity constraint violation:
1048 Column cannot be null.
对于所有列。
我也尝试过这种语法作为补丁方法:
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();
但我仍然遇到同样的错误。
有人可以帮助我,或者至少指出我正确的方向吗?
谢谢!
我已经解决了我的问题:我在 axios.patch()
请求中传递了空对象,因为我设置错误。我已将对象的结构更改为 key:value
对,瞧,成功了!
我正在尝试从我的 Vuetify 数据 table 向 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]: Integrity constraint violation: 1048 Column cannot be null.
对于所有列。
我也尝试过这种语法作为补丁方法:
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();
但我仍然遇到同样的错误。 有人可以帮助我,或者至少指出我正确的方向吗? 谢谢!
我已经解决了我的问题:我在 axios.patch()
请求中传递了空对象,因为我设置错误。我已将对象的结构更改为 key:value
对,瞧,成功了!