Laravelの開発中、VS Code上で $this->actingAs($user) や Auth::user() から取得した $user に赤波線(型警告)が表示されることがあります。
プログラム自体は正常に動作するものの、エディタ上に常にエラーが表示されているのは気持ち悪いですよね。
この型警告をスッキリ消去する解決方法をご紹介します。
原因:VS Code(Intelephense)の型推論エラー
この赤波線は、Laravelのコード自体が間違っているわけではありません。
VS Codeの拡張機能(Intelephense など)が、User::factory()->create() や Auth::user() が返すオブジェクトの型を正確に認識できず、「認証用メソッドが求めている Authenticatable インタフェースに適合しているか分からない」と判断するために発生します。
解決策:PHPdoc(アノテーション)で型を明示する
最も手軽で確実な方法です。
変数を定義する直前、または使用する直前に、コメントでエディタに対して「この $user は User モデルだよ」と教えてあげます。
記述例:
PHP
/** @var \App\Models\User $user */
$user = User::factory()->create();
// または
/** @var \App\Models\User $user */
$user = Auth::user();


コメント