LoginSignup
4
2

More than 3 years have passed since last update.

【Laravel】routesのweb.phpでRouteが未定義になるのはVSCodeの拡張機能が原因だった

Posted at

【Laravel】routesのweb.phpでRouteが未定義になるのはVSCodeの拡張機能が原因だった

使用環境

  • windows 10 Home(COREi7)
  • XAMPP 7.3.18
  • Laravel 6
  • VSCode

背景

Laravelの学習に取り組んでいるとルーティングを行うroutesフォルダのweb.phpでRouteが未定義だとエラーが発生していた。

原因

VSCodeの拡張機能PHP intelephenseを使用しているとこのエラーが発生する模様。

解決方法

調べてみると2パターンある模様。1つはVSCodeの拡張機能を使う方法。2つ目は定義づけする方法。

1つ目 VSCodeの拡張機能を使う

 拡張機能のintelephenseを使用し、intelephenseの設定から以下のチェックを外す。その後、VSCodeを再起動する。
詳しくは下記webサイトを参照。

intelephense.diagnostics.undefinedClassConstants
intelephense.diagnostics.undefinedConstants
intelephense.diagnostics.undefinedFunctions
intelephense.diagnostics.undefinedMethods
intelephense.diagnostics.undefinedProperties
intelephense.diagnostics.undefinedTypes
[VSCode] LaravelでRouteなどがエラーになるのを直す
VSCode拡張機能Intelephenseの更新によるUndefined type 'Route'(他クラス)のエラー

2つ目 web.phpファイル内で定義付けする

 web.phpファイル内にuse Illuminate\Support\Facades\Route;の1文を追加する。
ちなみに関連付けされたRoute.phpは次の場所にある。
作成したLaravelプロジェクトフォルダ\vendor\laravel\framework\src\Illuminate\Support\Facades

注意事項

Routeの使用自体はuse Illuminate\Support\Facades\Route;をわざわざ記述しなくても使用できるようになっている。

web.phpでuse Illuminate\Support\Facades\Routeをしなくてよい理由

App\Http\Controllers名前空間をコントローラルート登録時に毎回指定しなくても済むように、デフォルトでRouteServiceProviderが名前空間グループの中でroutes.phpファイルを読み込み、指定していることを覚えておいてください。これにより、先頭のApp\Http\Controllers名前空間を省略でき、続きの部分を指定するだけで済みます。
[公式]ルーティング 6.xLaravel

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2