0

我对 PHP intelephense 有疑问,createToken方法未定义。我不知道如何解决它。但是当我在邮递员中运行它时它可以工作。我不知道为什么 vscode 无法识别它。我还添加了使用 Laravel\Passport\HasApiTokens;并在用户模型中使用 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]);
}
4

2 回答 2

3

我遇到了同样的问题并通过添加该行来解决。对于我的情况。

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

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

于 2021-10-15T05:28:48.963 回答
-2

在模型中用户添加

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

试着告诉我

于 2021-10-08T19:49:46.170 回答