ルーティングが動いてない??
僕がハマった事例
僕は、以下のコードでエラーが出ないのにデータを取得できない、という現象でハマってました。
やりたかったことは、getBooksBorroedメソッドを動かして、ユーザーが持っている本を返したかったんです。
// idから本を返す
Route::get("/books/{id}", "BooksController@show");
// 借りている本を返す
Route::get("/books/borrowed", "BooksController@getBooksBorrowed");
コントローラの記述と間違ってるんじゃないの?、全角になってるんじゃないの?とか、もう色々調べたり確認したりしました。
結論から言うと、ここに原因があります。
Laravelでのルーティングは上の記述が優先される
上のサブタイトルにもありますが、Laravelでは上に記述したルーティングの方が優先されます。
ん?でもパスは同じじゃないよね、と思った方もいるかもしれません、、、。
確認して欲しいことは2つあって、
・先頭が、/booksで同じであること
・上のパスは、/booksに続いて、{id}というパラメータを持っていること
今回の事例でいうと、
/books/borrowedを呼びたいのに、/books/{id}が優先されてしまったのが原因です。