Laravelでデータベースに上書き保存できない時の対処法。1行足すだけ!

[st-kaiwa3 r]Laravelで投稿編集フォームを作って送信したんだけど、なぜかエラーが帰ってきてデータベースに保存できないんだ。どうすればいいの?[/st-kaiwa3]

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’)を書き足せば、データベースに正常に上書き保存されるようになります。

[st-kaiwa1 r]もちろん@csrfも忘れると送信されないから、必ず入れてね![/st-kaiwa1]

シェアする

  • このエントリーをはてなブックマークに追加

フォローする