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

Laravel 8: undefined method 'createToken' intelephense(1013)

我对 PHP intelephense 有疑问,createToken 方法未定义。我不知道如何解决它。但是当我 运行 它在邮递员中时它起作用了。我不知道为什么 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]);
}

在模型中添加用户

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

试着告诉我

我遇到了同样的问题,加了一行就解决了。对于我的情况。

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

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