【问题标题】:class sanctum\\personal access token not found类圣所\\个人访问令牌未找到
【发布时间】:2021-09-22 15:46:16
【问题描述】:

我在圣所中注册任何用户时遇到问题。我在我的 Laravel 中新安装了 sanctum,在我在邮递员中提供用户和密码和电子邮件后,我遇到了这个问题,它给了我以下问题:

    "message": "Class \"App\\Models\\PersonalAccessToken\" not found",
    "exception": "Error",
    "file": "C:\\xampp\\htdocs\\apiapp\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships.php",
    "line": 745,

即使创建了用户,它也不会给出令牌。

下面是我的用户控制器:

    public function store(Request $request) {
        $fields = $request->validate([
            'name' => 'required|string',
            'email' => 'required|string|unique:users,email',
            'password' => 'required|string|confirmed'
        ]);

        $user = User::create([
            'name' => $fields['name'],
            'email' => $fields['email'],
            'password' => bcrypt($fields['password'])
        ]);

        $token = $user->createToken('myapptoken')->plainTextToken;

        $response = [
            'user' => $user,
            'token' => $token
        ];
        return response($response); 
}

这是我的模型用户

【问题讨论】:

  • 你能展示一下用户模型吗
  • 我补充说请帮助我在这个问题上一周左右
  • 查看我新分享的图片

标签: laravel api postman token


【解决方案1】:

您可能缺少将 HasApiTokens 特征添加到您的用户模型。

use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

【讨论】:

  • 我已经添加了,但问题仍然存在,该怎么办?
  • 你能帮我吗亲,我真的需要紧急帮助,即使我可以给你我的anydesk来一起修复它
  • 我看到了你分享的用户模型。我没有看到:use Laravel\Sanctum\HasApiTokens; 导入到任何地方。
  • 它已添加,但在我的模型用户中仍然无法使用
  • 我可以给你我的anydesk一起检查吗?
【解决方案2】:

我认为您尝试遵循官方教程Overriding Default Models。 本教程展示了如何将类放到 AppServiceProvider.php 文件中:

use App\Models\Sanctum\PersonalAccessToken; // this line will produce error
use Laravel\Sanctum\Sanctum;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);
}

要解决这个问题,只需创建前面提到的类并放置到正确的命名空间:

namespace App\Models\Sanctum; // place your file to Models/Sanctum/PersonalAccessToken.php
use Laravel\Sanctum\PersonalAccessToken as SanctumPersonalAccessToken;

class PersonalAccessToken extends SanctumPersonalAccessToken
{
    // ...
}

如果您想自定义您的用户模型类,就像您当前的问题一样:

您添加了行:use App\Models\Sanctum\PersonalAccessToken;,因此您必须按照我上面解释的那样在正确的位置创建这个缺失的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2021-09-04
    • 2021-11-15
    • 2017-03-26
    • 2020-04-09
    相关资源
    最近更新 更多