【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の使い方を忘れてしまったら、この記事を思い出してくださいね!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

LINEで送る
Pocket

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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