フォームは、ユーザとのやりとりに必須の機能ですが、これは実装が面倒くさいものでもあります。特にCakePHPの場合、送信先のアドレスはアプリケーションやアクションの名前を元に正確に指定する必要があります。
また、入力フォームにチェック機能(数字だけを入力したり、入力できる範囲を指定したり)を追加しようと思うと、CakePHPとは無関係にユーザーがJavaScriptなどをごりごり書いて実装しないといけなくなったりします。
そこで、CakePHPで利用するフォーム関係のタグを生成するための専用機能がCakePHPには用意されました。それが「
フォームヘルパー」と呼ばれるものです。
「
ヘルパー」とは、ビューの出力生成を補佐するためのプログラムです。というとわかりにくいですが、Webページの表示用タグを自動生成するためのクラスのこと、と考えるとよいでしょう。このヘルパーには、生成する内容に応じていくつかのものが用意されています。フォーム関係を生成するものは「フォームヘルパー」と呼ばれるものです。
フォームヘルパーは
FormHelperクラスとして用意されており、これは
Controllerの「
Form」プロパティにインスタンスが設定されています。この中に、フォーム関係のタグを生成するためのメソッドが用意されており、これらを使ってタグを作成していきます。
まずは、基本となる
<form>タグを生成するメソッドを覚えておきましょう。
・<form>開始タグを生成する$this->Form->create( モデル , オプション );
・<form>終了タグを生成する$this->Form->end();
createメソッドは、<form>の開始タグを生成します。これは2つの引数があります。1つ目は、このフォームで利用する「
モデル」のオブジェクトを指定するためのものです。モデルというのは、データベースなどのデータを扱うためのものでしたね。これは、例えばフォームの内容をデータベースに保存したりするときに使います。とりあえずモデルを使ってない現時点では、これは
nullでいいでしょう。
第2引数には、フォームに関するオプション設定の情報を用意します。これは、各種の設定を連想配列としてまとめたものになります。これにはさまざまな項目を用意できるのですが、具体的には「
type」と「
url」を用意しておくのが基本と考えるとよいでしょう。
'type' => 'post' または 'get'
'url' => ['controller' => '○○', 'action' => '○○']
typeは、
getか
postを指定します。
urlは、
controllerと
actionの2つの項目を持つ連想配列で指定します。これで、アプリケーション名(
HeloControllerなら、
'Helo')と、アクション名をそれぞれ用意してやれば、それらを元に自動的に
urlが設定されるというわけです。