38
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FormからPUT、PATCH、DELETEリクエストを送る方法(Laravel)

Last updated at Posted at 2020-01-30

はじめに

今回は、LaravelでFormからPUT、PATCH、DELETEリクエストを送る方法をアウトプットします。前提として、HTMLのformタグがこれらの形式をサポートしていないため、実際のところPOST送信となっています。それを回避するための対策です。

POST,PUT,PATCHの使い分けの参考資料

POSTとPUTとPATCHの使い分けについて

ルート定義メソッドの機能名等についての参考資料

Laravelのルーティング表

結論

(例)このようなフォームがあったとします。

hoge.blade.php
<form action="{{ url('/posts',$post->id) }}" method="post">
  @method('PATCH')
  @csrf
</form>

上記のように、Baldeのディレクティブを使って、@method('PATCH')と記述してあげれば、Laravelで送信形式をPATCHと判断することができます。
PUTとDELETEに関しても、ここのPATCHの箇所を置き換えていただければ大丈夫です。

では、実際に試して確認してみましょう。

まず、HTTP動詞に対応したルートを定義してあげます。

web.php
Route::patch('/posts/{post?}','PostsController@update');
PostsController.php
public function update(Request $request)
{
    dd($request->method());
}

dd関数を使用して、リクエストされたメソッドを確認してみると

patch.png

はい、ちゃんとメソッドが確認できていますね!

おわりに

アウトプットというよりもメモになってしまいましたね(笑)もし内容に誤りがありましたら、お手数ですがご指摘をよろしくお願い致します。読んでいただき、ありがとうございます。


参考記事

LaravelのFormからPUT / PATCH / DELETEリクエストをおくる

38
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?