見せかけのフォームメソッドについて

2020/08/12

mainvisual

Laravel5.2で更新処理と削除処理は少し注意しないといけません。

フォームタグのメソッドにPUTやDELETEを指定しても、HTMLフォームがそもそもこれらのメソッドに対応していないからです。

今回は見せかけのフォームメソッドについてのエントリーです。

 

RESTfulで設計するときの注意点

RESTとはHTTPのリクエストメソッドURIに応じて操作対象を特定するという作り方です。

METHOD URI ACTION 操作内容
GET /articles ArticlesController@index 一覧表示
GET /articles/create ArticlesController@create 新規作成
POST /articles ArticlesController@store 新規保存
GET /articles/{id} ArticlesController@show 詳細表示
GET /articles/{id}/edit ArticlesController@edit 編集
PUT/PATCH /articles/{article} ArticlesController@update 更新
DELETE /articles/{article} ArticlesController@destroy 削除

RESTの概念に基づいて設計されたものをRESTfulと言います。

このとき、 "更新" と "削除" は "PUT/PATCH" と "DELETE" のメソッドを指定するのですが、HTMLではサポートされていません。

どうすればいいでしょうか?

 

対策方法

こういうときは、formではPOSTメソッドを指定して、hiddenで_methodプロパティを指定します。

<form method="post" action="/users/{$data->id}">
  <input name="_method" type="hidden" value="PUT">
  <input type="text" name="name" />
  <input type="submit" />
</form>

 
ヘルパー関数を使う場合は以下になります。

<form method="post" action="/users/{$data->id}">
  {!! method_field('PUT') !!}
  <input type="text" name="name" />
  <input type="submit" />
</form>

見せかけのフォームメソッドについては以上です。

 

PHPフレームワーク Laravel入門 第2版

僕がはじめてLaravelを学習するために参考にしたサイトは、掌田津耶乃(しょうだつやの)さんの libro というサイトです。当時(2016年)、Laravel学習サイトの中でもこのサイトは群を抜いてわかりやすく説明されていたので、とても勉強になったのを覚えています。この本は掌田津耶乃さんが書いた本なので、わかりやすく解説されているだろうと kindle で購入しました。2020年8月の時点でいうと日本国内にて唯一の Laravel の良書と言っても良いかと思います。口コミでもLaravel本のロングセラー定番解説書として認知されています。当サイトではチュートリアル形式でLaravelを解説しているので、初心者の方はこの本とセットで学習されるといいと思います。しかし、かなりわかりやすく解説されているとはいえ、PHP中級者以上のスキルは必要です。PHP自体の知識が乏しい方は 独習PHP 第3版 をあわせて購入することをお勧めします。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-基礎知識