🐬

【Laravel】Unfined type 'Route'と出た場合の3つの対処法

2021/08/26に公開

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 にダウングレードすることでエラーが消えます。

  1. VS Codeの EXTENSIONSを開く
  2. 検索フォームから PHP Intelephenseを検索
  3. 歯車アイコンをクリック
  4. Install Another Versionをクリック

  1. Ver. 1.2.3を選択
  2. 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