Laravel 8: undefined method 'createToken' intelephense(1013) Laravel 8:未定义方法'createToken' intelephense(1013)

3

我遇到了 PHP Intelephense 的问题,方法 createToken 未定义。我不知道该如何修复它,但当我在 Postman 中运行时,它可以工作。我不知道为什么 VSCode 不会识别它。我还在用户模型中添加了 use Laravel\Passport\HasApiTokens; use HasApiTokens 。请帮帮我,我已经没有其他选项了。谢谢。

public function login(Request $request)
{
    $login = $request->validate([
        'email' => 'required',
        'password'=> 'required',
    ]);
    if (!Auth::attempt($login)){
        return response()->json(['message' => 'error']);
    }
    $user = Auth::user();
    $token = $user->createToken('Token Name')->accessToken;
    return response()->json(['user' => $user, 'token' => $token]);
}
2个回答

26

我遇到了同样的问题,并通过添加这行代码来解决。对于我的情况而言。

    /** @var \App\Models\MyUserModel $user **/
    $user = Auth::user();

我认为注释行告诉PHP intelephense $user变量不是Illuminate\Foundation\Auth\User类型,而是\App\Models\MyUserModel类型。请尝试。


1
一种简单而实用的解决方案。谢谢。 - Prabowo Murti

2

在用户模型中添加

use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
}

试一试告诉我


什么问题?我试图帮助你,而你却给我负1分?我向你保证,这样你在编程方面不会有太大的进展。 - landry moutongo
告诉我问题是什么,我会帮助你。 - landry moutongo
谢谢。问题解决了 :D - Rafik Bojes
@landrymoutongo 我觉得你得到负分是因为问题中已经提到HasApiTokens trait已经添加到了User模型中。所以你的回答给人的印象是你没有仔细阅读问题就写下了这个答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接