【发布时间】:2021-09-15 08:05:09
【问题描述】:
我正在使用 Laravel 和 Angular。我想显示经过身份验证的用户的数据。我正在使用 JSON 从 Laravel 获取数据,并将此代码用于用户数据。
const headers = new HttpHeaders({
Authorization: `Bearer ${localStorage.getItem('token')}`
});
this.http.get('http://127.0.0.1:8000/api/user', {headers}).subscribe(
result => (this.user = result, console.log(result))
);
它可以工作,但在一段时间后,此代码不起作用,我在控制台中收到错误。
模型 [App\Models\User] 没有查询结果
127.0.0.1:8000/api/user 404(未找到)
我错过了什么?
UserController
public function user() {
$user = User::where('id', Auth::id())->firstOrfail();
return response()->json($user);
}
api.php
Route::get('/user', [UserController::class, 'user']);
【问题讨论】:
-
如果您已经登录(通过所有中间件和身份验证检查),您可以执行 1 行代码:
return response()->json(Auth::user());。你有Auth::user(),它将返回登录的user,Auth::id(),它将返回用户的id。无论何时你先使用where('id', $id),然后再使用->first()或->firstOrFail(),你都可以使用User::find($id);而忘记where,或者如果你使用fail,你可以使用User::findOrFail($id);。