如何修复laravel更新端点?



我正在尝试更新一个用户。

这是我的模型:
<?php
namespace AppModels;
use LaravelPassportHasApiTokens;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
protected $fillable = [
'name',
'email',
'password',
'user_type',
'username'
];
protected $hidden = [
'password',
'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
}

这里是更新控制器:

public function update(Request $request, User $user)
{
$user->update($request->all());
return response()->json($user, 200);
}

api.php:

Route::group([
'prefix' => 'users',
'middleware' => ['cors', 'json.response', 'auth:api']
], function () {
Route::put('/{user}', [UserController::class, 'update']);
});

我发送请求与VSCode扩展像这样:

PUT {{server}}/users/2
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name": "Jane Doe",
}

但是它没有改变name。我不明白我错过了什么。

我试图自己更改选择的用户数据。

我认为这是关于不扩展use IlluminateDatabaseEloquentModel;

控制器可能找不到$user。将代码改为$user = auth('api')->user();在更新功能。并从括号中删除User $ User。

最新更新