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