【CakePHP入門】フォームを作成する方法(FormHelper)

こんにちは!フリーエンジニアのヤマシタです。

PHPはWebサービスの作成を得意とするプログラミング言語のため、HTMLで構成されるフォームを作成する機会は多いと言えます。

この記事では、

・FormHelperとは?
・FormHelperを使用したフォームの使用方法

という基本的な内容から、

・セレクトボックスを作成する方法
・日付のセレクトボックスを作成する方法
・ボタンやsubmitボタンを作成する方法

などのFormHelperの使い方について解説します。

ここではFormHelperを使用して、フォームを作成する方法について解説していきます!

使用環境: cakephp-3-4-7

FormHelperとは

FormHelperとは、CakePHPでWebサービスで使用するフォームを作成するときに使用するCakePHPのビューの機能です。

FormHelperを使用すれば、フォーム作成時の部品の配置やレイアウトの作成を効率化することができます。

FormHelperを使用して簡単なフォームを作成するには、以下の手順で行います。

フォームの開始

フォームを作成するには、まずcreateメソッドを使用します。

createメソッドは、第一引数にフォームが定義されているコンテキストを指定します。

第二引数には連想配列でオプションやHTMLの属性を指定します。

フォームの作成

Formcontrol、text、buttonメソッドなどを使用すれば、フォームを構成するフォームコントロールを生成することができます。

フォーム作成時によく使用するメソッドは、以下のように定義します。

例)controlメソッド

第一引数にフォームに出力するテキストを指定します。

第二引数のオプションを指定すると、特定のコントロールタイプを指定することができます。

フォームの終了

フォームの内容を一通り記述したら、最後にendメソッドを記述してフォームを終了します。

FormHelperの基本的な使い方

ここでは実際にFormHelperを使用して、簡単なフォームを作成していきましょう。

前述したようにフォームを作成するには、

・createメソッドでフォームを作成
・control、text、buttonメソッドなどを使用して部品の配置
・endメソッドでフォーム処理を終了

となります。

以下にフォームを作成する簡単なサンプルを紹介します。

SampleController.php

index.ctp

サンプルプログラムを実行すると、以下のようなフォームが作成されます。

sample1

このようにFormHelperを使用すれば、問合せフォームなどの画面が簡単に作成できますね!

セレクトボックスを作成する

セレクトボックスを作成するには、コントローラーにセレクトボックスで選択するための配列を指定し、setメソッドにビューに情報を渡すための内容を指定します。

setメソッドは第一引数にグループのIDなどを指定し、第二引数にセレクトボックスで選択するための要素を指定します。

コントローラーの記述は以下になります。

ビューではcontrolメソッドを指定して、第一引数にグループID、第二引数にコントローラーで作成した配列を指定しています。

サンプルを実行すると、セレクトボックスが表示されます。

実行結果
image2

選択ボックスをクリックすると、配列で作成した要素が選択できます。

日付のセレクトボックスを作成する

セレクトボックスで生年月日や希望日時を指定するときに、日付が選択できるセレクトボックスがよく使われます。

年月日を選択できるセレクトボックスを作成するには、$this->Form->inputメソッドを使用し、第二引数のオプションで以下のように指定します。

実行結果
image4

ボタンとsubmit要素を作成する

ボタンを作成するには、buttonメソッドを使用します。

buttonメソッドは第一引数にボタンに表示するテキストを指定します。

第二引数のオプションを設定すると、次の3つのbuttonタイプを指定できます。

実行結果
image3

第二引数指定なし、またはtypeを指定すると、通常のボタンが作成されます。

‘type’ => ‘reset’を指定すると、フォームのリセットボタンが作成されます。

‘type’ => ‘submit’を指定すると、submit(送信)ボタンが作成されます。

また、this->Form->submitを指定しても、同様にsubmitボタンが作成されます。

まとめ

ここではFormHelperの用途や、基本的な使い方、フォームに配置するテキストボックスやセレクトボックス、ボタンなどの基本的な部品の使い方について解説しました。

FormHelperを使用すれば直感的にフォームが作れますので、使い方についてはよく理解しておきましょう。

もし、FormHelperの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説