Laravelで投稿編集フォームを作って送信したんだけど、なぜかエラーが帰ってきてデータベースに保存できないんだ。どうすればいいの?
Laravelで、投稿編集フォームから投稿を送信したのに、データベースに上書き保存されない(更新できない)で、下のようなエラーが出たとします。
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH.
このエラーの原因ですが、
すでにデータベースにあるデータを上書き保存する時は、postではなくputを使う必要があります。
例えば、新規投稿を送信するフォームの場合は、こう書きますよね。
<form action="/forum" method="post">
@csrf
でも、上書き保存する場合は、
<form action="/forum" method="post">
@csrf
@method('PUT')
のように、@method('PUT')を入れないとエラーが出て保存されません。
この@method('PUT')を書き足せば、データベースに正常に上書き保存されるようになります。
もちろん@csrfも忘れると送信されないから、必ず入れてね!
Neby