You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中UserAuthController出现Undefined method 'createToken'错误

解决Laravel 9 Passport中createToken方法未定义的问题

以下是针对你遇到的Intelephense提示Undefined method 'createToken'的可行解决方案:

1. 清除Intelephense缓存

编辑器代码分析工具可能缓存了旧的模型定义,执行以下操作:

  • 在VS Code中打开命令面板(Ctrl+Shift+P / Cmd+Shift+P)
  • 输入Intelephense: Clear Workspace Cache并执行
  • 重启VS Code后重新检查代码

2. 确认Passport安装配置完整

确保完成Passport所有必备步骤:

  • 运行Passport安装命令:
    php artisan passport:install
    
  • 在App\Providers\AuthServiceProvider.php中注册Passport路由:
    use Laravel\Passport\Passport;
    
    public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
    }
    
  • 执行数据库迁移:
    php artisan migrate
    

3. 添加明确类型提示

在控制器中对User实例添加类型声明,帮助Intelephense识别方法:
修改register方法:

/** @var \App\Models\User $user */
$user = User::create($data);
$token = $user->createToken('API Token')->accessToken;

修改login方法:

/** @var \App\Models\User $user */
$user = auth()->user();
$token = $user->createToken('API Token')->accessToken;

4. 明确指定API Guard

登录时明确使用api guard,避免默认web guard的类型识别问题:

if (!auth('api')->attempt($data)) {
    return response(['error_message' => 'Incorrect Details. Please try again']);
}

/** @var \App\Models\User $user */
$user = auth('api')->user();
$token = $user->createToken('API Token')->accessToken;

5. 刷新自动加载文件

执行composer命令更新自动加载映射:

composer dump-autoload

内容的提问来源于stack exchange,提问作者lewis04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:31:46