🐬
【Laravel】Unfined type 'Route'と出た場合の3つの対処法
Visual Studio Code(以下VS Code)にPHP Intelephenseプラグインを入れて開発をすると、下記のようなエラーが出ることがあります。
Undefined type 'Route'
他にも、
- Undefined type 'Hash'
- Undefined type 'DB'
- Undefined type 'Auth'
などなど、Facade
に関するエラーが続々と出てきます。
しかし実行すると正常に動くため、ただただエラーが出るだけという気持ち悪い状態が続いてしまいます。
このエラーを消す方法が3つあるので紹介します。
筆者の環境:
- Windows 10 pro
- Laravel 6
- PHP 7.4.11
対処法1:PHP Intelephenseのダウングレード
PHP IntelephenseのVer.1.3 以降はエラーが発生するので、Ver.1.2.3 にダウングレードすることでエラーが消えます。
- VS Codeの EXTENSIONSを開く
- 検索フォームから
PHP Intelephense
を検索 - 歯車アイコンをクリック
- Install Another Versionをクリック
- Ver. 1.2.3を選択
- Reload Requiredボタンをクリックして再読み込み
対処法2:use Illuminate\Support\Facades\xxx を記載
PHP Intelephenseのバージョンを変更したくない方はこちらをお試しください。
エラーが起きる部分を宣言してあげれば解決します。
例えば、Routeでエラーが出ている場合は、
use Illuminate\Support\Facades\Route
を記載してください。その他のエラーも、
- use Illuminate\Support\Facades\Hash
- use Illuminate\Support\Facades\DB
- use Illuminate\Support\Facades\Auth
のように、最後の部分をエラーと同じ名前にしてあげれば解決します。
対処法3:VS Codeの設定を変更
VS Codeの設定を変える方法もあります。
File > Preference > Setting > Extensions > intelephense
を開き、下記のチェックを外します。
- intelephense.diagnostics.undefinedClassConstants
- intelephense.diagnostics.undefinedConstants
- intelephense.diagnostics.undefinedFunctions
- intelephense.diagnostics.undefinedMethods
- intelephense.diagnostics.undefinedProperties
- intelephense.diagnostics.undefinedTypes
参考
Visual Studio Code PHP Intelephense Keep Showing Not Necessary Error
Discussion