CakePHP(3.x)におけるFormHelperの使い方
カテゴリ:インターン生ブログ
こんにちは!前回のHtmlHelperに引き続きFormHelperの使い方を紹介していきます!フォーム作成時の作業を代行してくれるツールなので是非使いこなして効率的にフォーム作成をしましょう!
また、弊社ではWebプロモーション成功事例集をまとめた限定資料を無料で配布しています。
Webマーケティングに興味がある方は、下記ページより目を通してみてください。
フォームの開始
FormHelperを活用するために、最初に記述するメソッドがcreate()で、下記のような形式で記述し、フォームの開始タグを出力します。
create(mixed $context = null, array $options = [])
$contextのコンテキスト部分にフォームが定義されていて、$optionsの部分にオプション、またはHTML属性の配列が記述されます。なお、パラメータは全てオプションとして記述し、パラメータなしで呼ばれた場合、現在のURLを元に現在のコントローラーに送信するためのフォームを作ろうとしているものとしてみなされます。
フォーム作成のオプション
$options配列は、ほとんどの場合フォーム設定がされる場所であり、この特別な配列にはformタグの生成方法に関係する色々なキーと値のペアが含まれます。例を少し上げると、”post”や”get” などのmethodやフォームを送信するURLの設定する”url”などがあります。
クエリー文字列からフォームの値を取得
デフォルトでは、FormHelper は、「コンテキスト」をもとにその値を描画します。 EntityContextのデフォルトは、現在のエンティティーや $request->getData() からデータを取得します。
しかし、クエリー文字列から読み込む必要があるフォームを構築している場合は、 FormHelper の valueSource() を使って、どこから入力データを読み込むかを変更できます。
echo $this->Form->create($article, [ ‘valueSources’ => [‘query’, ‘context’]]);
フォームのHTTPメソッドを変更
typeオプションを使用することにより、フォームが使用するHTTPメソッドを変更することができます。
echo $this->Form->create($article, [‘type’ => ‘get’]);
出力結果:
<form method=”get” action=”/articles/edit/5″>
フォームのURLを設定
urlオプションを使うと、フォームを現在のコントローラーやアプリケーションの別のコントローラーの特定のアクションに向けることができます。
例えば、フォームを現在のコントローラーのpublish()アクションに向けるには、次のような$optionsを与えます。
echo $this->Form->create($article, [‘url’ => [‘action’ =>’publish’]]);
出力結果:
<form method=”post” action=”/articles/publish”>
目的のフォームアクションが現在のコントローラーにない場合は、フォームアクションの完全なURLを指定することで与えることができる。
フォームコントロールの作成
control() メソッドを使うと完全なフォームコントロールを生成できます。これらのコントロールには、 必要に応じて、囲い込む div 、 label 、コントロールウィジェット、および検証エラーが含まれます。 フォームコンテキストでメタデータを使用することにより、このメソッドは各フィールドに適切な コントロールタイプを選択します。内部的に control() は FormHelper の他のメソッドを使います。
control()メソッドによって生成されたフィールドは、一般的には入力と呼ばれますが、HTMLのinput型の要素だけではなく他のHTMLフォーム要素(select,button,textareaなど)も作成することができる。
echo $this->Form->control(‘published’, [‘type’ => ‘checkbox’]);
requiredオプションを使用して自動的に必須フラグを無効にすることができます。
echo $this->Form->control(‘title’, [‘required’ => false]);
CakePHP(3.x)におけるFormHelperの使い方がわかったところで、次はWebで集客する方法をご紹介します!
別の記事にてWeb集客について詳しく解説しているので、ぜひこちらもご覧ください。
最後に
今回はFormHelperについて軽く紹介させていただきましたが、FormHelperには他にも様々な機能が備わっているので詳しく知りたい方は下記のCakePHPの解説サイトより調べて見てください!
・https://book.cakephp.org/3/ja/views/helpers/form.html
弊社inglowでは、これから広告の運用を考えている方、あるいはこれから広告代理店に運用をお願いされる方向けに、「業界別Web広告の成功事例」をまとめた資料を無料配布しております。
下記の画像をクリック、または、フォームに入力いただくだけで、無料で資料をダウンロードしていただけます。ぜひご利用下さい。