【发布时间】:2021-12-24 09:27:54
【问题描述】:
我正在尝试更新我已经存在的用户。但是我真的不知道该怎么做。
这是我用来更新用户的 API 路由
Route::put('/user/{user}', [UserController::class, 'updateUser']);
用户控制器中的函数是这样的:
public function updateUser(Request $request, User $user){
$data = $request->validate([
'username' => '',
'firstname' => '',
'lastname' => '',
'email' => '',
'password' => '',
'phone_number' => '',
'role' => '',
'companyID' => '',
'companyRole' => '',
]);
$input = $request->all();
$user->update($input);
return $user;
}
这是我在 vue 中用来将新用户数据发送到 laravel 的函数:
editUser(){
console.log(this.user)
this.$axios
.put('api/user/' + this.$route.params.id + this.user)
.then((response) => {
console.log(response.data)
})
.catch((err) => {
console.log(err)
})
}
这是“this.user”
{ "id": 1, "username": "user", "firstname": "user", "lastname": "user", "email": "user@test.com", "email_verified_at": null, "phone_number": 6282223, "role": "user", "companyID": 2, "companyRole": "employee", "logged_in": 0, "created_at": "2021-11-11T12:00:23.000000Z", "updated_at": "2021-11-11T12:00:23.000000Z" }
而“this.$route.params.id”只是用户 ID
我不知道我做错了什么。没有更新
【问题讨论】:
-
您的意思是
.put('api/user/' + this.$route.params.id, this.user)?您的原始代码似乎试图将this.user(一个对象)连接到 URL -
@Phil 错了吗?
-
您的原始代码将尝试向
api/user/1[object%20Object]发出 PUT 请求。可能不是你想要的 -
@Phil 好的,我该怎么做才能正常工作?
-
我的第一条评论不清楚吗?如果之后仍然无法正常工作,请使用您可以使用的工具(尤其是浏览器开发工具 Network 面板)来调试问题