【掲示板アプリを作ろう】【未解決】route作成したが目当てのページに遷移できない

注意

解決する方法だけ知りたい人はこちらを参照。

以下は調査ログ。

参考

詰まった所

タイトル通り、目当てのページに遷移しなかった。

Route::resource('posts', 'PostsController', ['only' => ['create', 'store']]);

帰ってきたエラーコードは404(Not Found)。

原因候補

思い当たる原因についてリストアップしてみよう。
・ルーティングできていない(上の記述が間違っているか、足りない)
・ルーティングは出来たが、遷移先のWebページが見つからない
・ルーティングも遷移先も見つけたが、遷移先の処理中に実行時エラー

うち最後は除外して良い。その場合エラーコードは404ではなく500が帰ってくる(はず)。

route側

Route::resource('posts', 'PostsController', ['only' => ['create', 'store']]);

そもそもこの書き方何ぞ? ってとこからスタート。
そしたらめっちゃ分かりやすい解説あった。

自分のローカル参照した所、`'only' =>`の先にindexが無いが? と思って追加してみたが、これは無関係らしくエラーは変わらず。

遷移先(PostsController)

今回目的のcreateメソッドは存在。

また中身の書き方が悪い可能性も一応考えて、 中身をindexメソッドと同じにしてみたが、変化なし。

PostsControllerの呼び出しに失敗しているかなこれは。

routeのキャッシュクリア

これを参考に実施。
しかし、変化なし。

php artisan route:list

route設定を一覧できるコマンドがあったので実行してみた。

$php artisan route:list
+--------+----------+--------------+--------------+---------------------------------------------+--------------+
| Domain | Method   | URI          | Name         | Action                                      | Middleware   |
+--------+----------+--------------+--------------+---------------------------------------------+--------------+
|        | GET|HEAD | /            | top          | App\Http\Controllers\PostsController@index  | web          |
|        | GET|HEAD | api/user     |              | Closure                                     | api,auth:api |
|        | GET|HEAD | posts        | posts.index  | App\Http\Controllers\PostsController@index  | web          |
|        | POST     | posts        | posts.store  | App\Http\Controllers\PostsController@store  | web          |
|        | GET|HEAD | posts/create | posts.create | App\Http\Controllers\PostsController@create | web          |
|        | GET|HEAD | posts/{post} | posts.show   | App\Http\Controllers\PostsController@show   | web          |
+--------+----------+--------------+--------------+---------------------------------------------+--------------+

上手くいかないのがposts/createとposts/{post}(show)なのだが、認識はされている様子。

HTTPリクエスト違う...?

いよいよ手詰まってきた。
GETメソッド以外で呼んでいるのでは? と思いデベロッパーツール見てみる。

そんなことはなかった。

ググる

仮説外れまくりのため、ググる。

そうした所、Apacheの設定側の問題である記事が沢山出てきた。

Dockerと組み合わせた自分の環境にどう適用すれば良いか分からなかったため、続きはまた明日やる。

(続く)

この記事が気に入ったらサポートをしてみませんか?