【Laravel】actingAsで$userに赤波線(型エラー)が出る時の解決方法

Laravel

Laravelの開発中、VS Code上で $this->actingAs($user)Auth::user() から取得した $user赤波線(型警告)が表示されることがあります。

プログラム自体は正常に動作するものの、エディタ上に常にエラーが表示されているのは気持ち悪いですよね。
この型警告をスッキリ消去する解決方法をご紹介します。


原因:VS Code(Intelephense)の型推論エラー

この赤波線は、Laravelのコード自体が間違っているわけではありません。

VS Codeの拡張機能(Intelephense など)が、User::factory()->create()Auth::user() が返すオブジェクトの型を正確に認識できず、「認証用メソッドが求めている Authenticatable インタフェースに適合しているか分からない」と判断するために発生します。


解決策:PHPdoc(アノテーション)で型を明示する

最も手軽で確実な方法です。
変数を定義する直前、または使用する直前に、コメントでエディタに対して「この $userUser モデルだよ」と教えてあげます。

記述例:

PHP
/** @var \App\Models\User $user */
$user = User::factory()->create();

// または

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

コメント