回答編集履歴

2

追記の追記

2017/10/18 08:10

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -17,3 +17,15 @@
17
17
 
18
18
 
19
19
  試してみればすぐわかることではないですか?もし上記参考と同じ現象であればそれで解決するでしょう。解決しなければ別の問題であるということです。
20
+
21
+
22
+
23
+ # 追記の追記
24
+
25
+ `Class 'App\Providers\Schema' not found`というエラーが出る理由は、`App\Providers\AppServiceProvider`の中で`Schema::defaultStringLength(191)`という行があるからです。ここで`Schema`というクラスの`defaultStringLength`というメソッドを呼び出そうとしています。
26
+
27
+ ここでとくに名前空間の指定が無いため、**自分自身(`AppServiceProvider`)と同一の名前空間(`App\Providers`)にその`Schema`というクラスがあるはず**とPHPが`App\Providers\Schema`というクラスを探そうとします。しかし、そんなクラスは存在しないためnot foundとなります。
28
+
29
+
30
+
31
+ ここで先程修正したコードで書いた`use Illuminate\Support\Facades\Schema;`という行です。このコード(`AppServiceProvider`)で`Schema`って言ったら`Illuminate\Support\Facades\Schema`のことである、とPHPに伝える役目をしています。以降は`Schema`という表記イコール`Illuminate\Support\Facades\Schema`と解釈されるため、エラーがなくなったわけです。

1

追記

2017/10/18 08:10

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -5,3 +5,15 @@
5
5
 
6
6
 
7
7
  `Class 'App\Providers\Schema' not found`で検索すればすぐ見つかりました。エラーで困ったときは、まず誰かに聞く前に自分でも少し調査しましょう。
8
+
9
+
10
+
11
+ # 追記
12
+
13
+ > 参考先を翻訳すると下記のように出てきたので、つまりAppServiceProvider.phpにuse Illuminate\Support\Facades\Schema;を加える必要があるという事でしょうか?
14
+
15
+ 英語なのでよくわかりません。
16
+
17
+
18
+
19
+ 試してみればすぐわかることではないですか?もし上記参考と同じ現象であればそれで解決するでしょう。解決しなければ別の問題であるということです。