Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

基礎知識

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

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>

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

 

-基礎知識