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

更新日:

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

 

 

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門