memo

Laravelでエラーが起こった時にgrepして解決する方法

私はAtom(MAC)をつかっていますが、Command+Shift+f でプロジェクト全体から該当するキーワードが含まれるファイルを検索するGrepの画面が立ち上がります。これを使ってエラーの可能性のあるファイルを調べます。

具体例

[Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to undefined method CreateCategoriesTable::string()

php artisan migrationをした時に上記のようなメッセージがでました。

Project Find Results Dropbox Local MAMP htdocs dev Laravel RESTFulAPI

Command+Shift+fで”CreateCategoriesTable”を検索すると

Project Find Results Dropbox Local MAMP htdocs dev Laravel RESTFulAPI

マイグレーションのcreate_categories_table.phpファイルに”CreateCategoriesTable”があります。

2017 11 25 065815 create categories table php Dropbox Local MAMP htdocs dev Laravel RESTFulAPI

中を見てもエラーがわかりません。

今回はUdemyを使って学習なので、正解のソースがあります。それとの違いをAtomのSplit-diffというプラグインを使って確認します。

split-diff

Untitled Dropbox Local MAMP htdocs dev Laravel RESTFulAPI

なんと、よく見ると「$table」と書かなければいけないところを「$this」と書いていました。

そりゃ、だめなはずだ。

修正して再度、php artisan migrate

すると

[Symfony\Component\Debug\Exception\FatalThrowableError]
  Class 'Product' not found

別のエラーが!

ということで、再度、grepしてエラーの対応を進めます。