libro
www.tuyano.com
初心者のためのCakePHP3 プログラミング入門

フォームヘルパーを利用する (1/5)

作成:2015-09-05 09:13
更新:2015-09-05 09:13

■フォームヘルパーと$this->Form

フォームは、ユーザとのやりとりに必須の機能ですが、これは実装が面倒くさいものでもあります。特に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は、getpostを指定します。urlは、controlleractionの2つの項目を持つ連想配列で指定します。これで、アプリケーション名(HeloControllerなら、'Helo')と、アクション名をそれぞれ用意してやれば、それらを元に自動的にurlが設定されるというわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのCakePHP3 プログラミング入門」に戻る