###エラーが起こった時のlaravelの設定
新規登録、編集画面から投稿確認画面に移り、ボタンを押すとstoreメソッドが実行され、テーブルに情報が反映されるという流れ。
####投稿確認画面
confirm.blade.php
{!! Form::open(['route' => 'question.store', 'method' => 'POST']) !!}
~省略~
{!! Form::close() !!}
####ルーティングの設定
routes/web.php
php artisan route:list
| | POST | question | question.store | App\Http\Controllers\QuestionController@store | web,auth |
| | GET|HEAD | question | question.index | App\Http\Controllers\QuestionController@index | web,auth |
| | POST | question/confirm | question.confirm | App\Http\Controllers\QuestionController@confirm | web,auth |
| | GET|HEAD | question/create | question.create | App\Http\Controllers\QuestionController@create | web,auth |
| | GET|HEAD | question/mypage | question.mypage | App\Http\Controllers\QuestionController@showMyPage | web,auth |
| | GET|HEAD | question/{question} | question.show | App\Http\Controllers\QuestionController@show | web,auth |
| | PUT|PATCH | question/{question} | question.update | App\Http\Controllers\QuestionController@update | web,auth |
| | DELETE | question/{question} | question.destroy | App\Http\Controllers\QuestionController@destroy | web,auth |
| | GET|HEAD | question/{question}/edit | question.edit
なのに実際、ボタンを押すと以下のエラーが出てびっくり
Trying to get property of non-object (View: resources/views/user/question/show.blade.php)
###アホ!!!そんなわけあるかい!!!俺は信じひんぞ!!!!
そう、showメソッドが実行されている
何回もルーティングを見直していたけど、Route::resource()で設定している以上、間違っているということはないはず。
実はこのエラーはformタグで作っていた時にも出ていたから、Formファサードを使えば解消されると思っていたのに、上のように変えてもこのエラーが出た。
###解決した、たった4行のコマンド
$ php artisan cache:clear
$ php artisan config:clear
$ php artisan route:clear
$ php artisan view:clear
キャッシュが悪さをしていた、こんなの気付くかよ...
###おわりに
どうみても間違いが見つからないときはキャッシュクリアしてみよう。