【问题标题】:Angular/Laravel - getting 'No query results for model [App\Models\User]' errorAngular/Laravel - 得到“没有模型 [App\Models\User] 的查询结果”错误
【发布时间】: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(),它将返回登录的userAuth::id(),它将返回用户的id。无论何时你先使用where('id', $id),然后再使用->first()->firstOrFail(),你都可以使用User::find($id); 而忘记where,或者如果你使用fail,你可以使用User::findOrFail($id);

标签: php angular laravel


【解决方案1】:

也许您的会话即将结束,这就是 Auth::id() 返回空且找不到您的用户名的原因

【讨论】:

  • 不,我有authguard,如果有这样的事情,它应该重定向到'登录'页面。
猜你喜欢
  • 2018-03-16
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
相关资源
最近更新 更多