Formヘルパーのinputタグのdiv/labelなどの設定

Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。
CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られています。恐らく、それを見越してのデフォルトでのフォーミングだと思いますが。

echo $this->Form->input( 'field', array());

<!-- HTML ->
<div class="input text">
    <label for="field">Field</label>
    <input id="field" type="text" name="data[field]">
</div>

divやlabelの出力をしない

ためには、それぞれにfalseをオプションとして設定します。これで、inputを囲っていたdiv要素が出力されなくなり、前のlabelも出力されなくなります。

echo $this->Form->input( 'field', array(
    'label' => false,    // labelを出力しない
    'div' => false       // divで囲わない
));

<!-- HTML ->
<input id="field" type="text" name="data[field]">

divやlabelのclassやテキストを設定する

こちらもオプションとしてそれぞれclassやtextを設定することで可能です。

echo $this->Form->input('field', array(
    'label' => array(
        'text' => 'message',       // labelに表示するテキスト
        'class' => 'control-label' // labelタグに付与するclass
    ),
    'div' => array(
        'class' => 'form-group'    // divタグに付与するclass
    ),
    'class' => 'form-control'      // inputタグに付与するclass
));

<!-- HTML ->
<div class="form-group">
    <label class="control-label" for="formdata3Field">message</label>
    <input id="formdata3Field" class="form-control" type="text" name="data[formdata3][field]">
</div>

その他idなども設定可能です。

その他

'class'には複数指定する場合があると思いますが、配列にするのではなくそれぞれをスペース区切りで書くようにして下さい。classに対してtrim処理が行われるらしく、配列に対してはtrimできません と怒られます。

Warning (2): trim() expects parameter 1 to be string, array given
[CORE/Cake/View/Helper.php, line 789]


Formヘルパー:/lib/Cake/View/Helper/FormHelper.php
Views > Helpers > FormHelper > Options
デモ
  • このエントリーをはてなブックマークに追加

関連記事

CakeEmailでメール送信(@gmail)

CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config

コントローラ内でバリデーション処理を呼び出す

CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。

独自のバリデーションルールを作成

CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規

FormヘルパーのMagicOption (マジックオプション) 

Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある

ログインに追加の条件を付与する「scope」

ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには

アップロードファイルのバリデーションルール

CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの

パス定数と変更方法やURLの取得

CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。

Blowfishを使用してハッシュ化する

使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま

ユーザ登録(仮登録・メール・本登録)

以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU

数値系バリデーション

CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること

Comment

@MidorikawaHina へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑