PHP

【CakePHP3】チェックボックスを横並びにする簡単な方法

今回は、FormHelperを使ったことのある人なら経験することが多いと思うのですが

『チェックボックス』を横並びに表示するための方法を紹介していきたいと思います。

FormHelperを使いながら、一部は直書きする

その方法が、

Formの生成や値の受け取りだけはFormHelperに任せて、細かいカスタマイズが必要なタグはHTMLで直書きする

という方法です。

この方法なら、FormHelperの利点だけを享受してFormHelperの面倒な制約に縛られずに済みます。

サンプルコード

以下のコードがその例です。

フォームを作るための部分を全て書いたので長くなりました。

バリデーションやモデルの使用はしていないので、そこらへんは好きにカスタマイズしてください。

あと、Bootstrap使っているので注意してください。

サンプルコードの解説

このコードを実際に実行してみると、以下のようになります。

Bootstrapらしい綺麗なフォームが出来上がりました。

チェックボックスのレイアウトもいい感じですよね。

コードを解説すると、

$form_templeteでテンプレートを作ったのち、Form::create()でフォームを生成しています。

そのあとは普通にcontrol()でフォームの要素を生成していくのですが、

ポイントは、チェックボックスのときだけecho()でHTML文を直接書き出しているところです。

こうすることで、CSRF対策やバリデーションを勝手にやってくれるFormHelperの恩恵を受けることもできます。