【问题标题】:Laravel 8: undefined method 'createToken' intelephense(1013)Laravel 8:未定义的方法'createToken' intelephense(1013)
【发布时间】:2021-10-05 02:57:36
【问题描述】:

我对 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]);
}

【问题讨论】:

    标签: laravel-8 laravel-passport intelephense


    【解决方案1】:

    我遇到了同样的问题并通过添加该行解决了。就我而言。

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

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

    【讨论】:

      【解决方案2】:

      在模型中用户添加

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

      试着告诉我

      【讨论】:

      • 有什么问题?我想帮助你,你给我一个负1?我向你保证,这样你就不会在编程中走得太远
      • 告诉我问题出在哪里,我会帮助你
      猜你喜欢
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2021-12-08
      • 2021-08-01
      • 1970-01-01
      相关资源
      最近更新 更多