CakePHP1.2.5のフォームヘルパーの全メソッドと引数を解説。
Paginatorと違いヘルプが充実しているので要らないような気もしますが、と思ったら未完なところが多かった。
create ( [ $model [ , $options ] ] ) | |
---|---|
<form>タグを作成する | |
引数 | 解説 |
$model | モデル名を指定。 デフォルトは現在のモデル。 配列を渡すとモデル名ではなく$optionsとして解釈される。 |
$options['type'] | デフォルトは'post'で要素は'post','get','put','delete','file' 'get'以外は<form method>が'POST'になり、'_method'=$options['type']がhiddenで渡される。 'file'はenctype="multipart/form-data"が追加される。 |
$options['action'] | 渡す先のアクション名を変更する。デフォルトは'add'。 |
$options['url'] | 渡す先のコントローラ名から先を全て変更する。 |
$options['default'] | falseにするとonsubmitでreturn false;される。 |
end ( [ $options ] ) | |
---|---|
</form>タグを作成する | |
引数 | 解説 |
$options | 文字列であればその値で<input type="submit">を作成し、その後に</form>を作成する。 配列ならば各キーと値が<input type="submit">に引き渡される。 無指定なら</form>のみ。 |
secure ( $fields ) | |
---|---|
セキュリティトークンをhiddenで発行する。 Securityコンポーネント使用時に使用可能 |
|
引数 | 解説 |
$fields | 暗号化するフィールド名の配列。デフォルトは全入力欄の名前。 有効であればend()時に自動的に発行されるので通常指定する必要はない。 |
input ( $fieldName [ , $options ] ) | |
---|---|
入力フォームを作成する。 フォームの種別は入力値によって自動的に(or手動で)変わる。 |
|
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][fieldName]" />といった値になる。 入力欄の前にもフィールド名が表示される。 |
$options['type'] | フォームの種別を指定する。 値はtext,textarea,select,radio,password,datetime,date,time,checkbox,hidden,file等。 指定されていない場合、モデルにフィールド名と同じ名前のカラムがあればその型から決められる。 見つからない場合、$options['options']、$options['length']等を参照してそれっぽい型に決められる。 |
$options['default'] | 最初から入力されている値を指定。 入力値が存在する場合はそちらが優先される。 |
$options['value'] |
最初から入力されている値を指定。 常時入力値より優先される。 |
$options['selected'] | $options['type']='select','datetime'等のときに指定可能。 デフォルトで選択されるキーを指定。 入力値より優先される。 $options['default']と$options['selected']両方指定している場合はselectedが優先。 |
$options['escape'] | falseにすると$options['value']をエスケープせずに表示する。 |
$options['before'] | フィールド名の前に表示する内容があれば記述。 |
$options['between'] | フィールド名と<input>タグの間に表示する内容があれば記述。 |
$options['after'] | <input>タグの後に表示する内容があれば記述。 |
$options['separator'] | $options['type']='radio'のときに指定可能。 各ラジオボタンの間に表示する内容があれば指定。 |
$options['options'] | <option>の中身とする配列を指定。 指定すると<select><option>になる。 |
$options['multiple'] | $options['type']='select'のときに指定可能。 $options['multiple']='multiple'かtrueなら<select multiple="multiple" >になる。 $options['multiple']='checkbox'なら$options['options']をチェックボックスとして出力する。 |
$options['maxlength'] | 指定可能なときにmaxlength属性を指定する。 |
$options['div'] | 全体を括る<div>の属性を指定する。 文字列であれば<div class="入力値">となる。 連想配列であれば各キーと値が属性にセットされる。 falseにすると<div>自体が出力されない。 |
$options['label'] | <label>で挟まれる文字、即ち$fieldNameの表記のみを変更したいときに指定する。 <label for>の値ではない。 連想配列であれば各キーと値が<label>の属性にセットされる。文字自体は'text'で指定。 falseにすると<label>自体が出力されない。 |
$options['legend'] | $options['type']='radio'のときに指定可能。 <fieldset>内の<legend>の値を指定する。 falseにすると<fieldset>自体が出力されない。 |
$options['id'] | <input>のidの値、及び<label for>の値を変更する。 |
$options['error'] | バリデーションエラーがある場合に表示するエラーメッセージを変更する。 falseにすると非表示になる。 |
$options['cols'] $options['rows'] |
テキストエリアのrowsとcolsを指定。 指定すると<textarea>になる。 |
$options['empty'] | $options['type']='select','datetime'等のときに指定可能。 <option>の最上段に表示される値を指定する。 trueなら空白になる。 マニュアルでは<input>についても書かれているが、<input>には無影響。 http://book.cakephp.org/ja/view/201/options-empty |
$options['dateFormat'] | $options['type']='datetime','date'のときに指定可能。 引数はdateTime()の$dateFormatと同じ。 |
$options['timeFormat'] | $options['type']='datetime','time'のときに指定可能。 引数はdateTime()の$timeFormatと同じ。 |
$options['minYear'] $options['maxYear'] |
$options['type']='datetime','date'のときに指定可能。 年の選択肢に表示する最大値、最小値を指定。 デフォルトは現在±20年。 |
$options['interval'] |
$options['type']='datetime','time'のときに指定可能。 分の選択肢を指定した間隔毎に表示する。 |
submit ( [ $caption [ , $options ] ] ) | |
---|---|
submitボタンを表示する | |
引数 | 解説 |
$caption | submitボタンに表示する文字列。 '://'が含まれる、あるいは画像ファイルであれば<input type="image">になる。 |
$options['div'] | 全体を括る<div>の属性を指定する。 文字列であれば<div class="入力値">となる。 連想配列であれば各キーと値が属性にセットされる。 falseにすると<div>自体が出力されない。 |
button ( [ $title [ , $options ] ] ) | |
---|---|
buttonボタンを表示する | |
引数 | 解説 |
$title | ボタンに表示する文字列。 |
$options['type'] | <input type="button">の値を上書きする。 意味があるのは'reset','submit'くらい。 |
$options['title'] | $titleの値を上書きする。 |
$options['name'] | ? |
text ( $fieldName [ , $options ] ) | |
---|---|
<input type="text">を作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | <input>の各要素を指定。 |
password ( $fieldName [ , $options ] ) | |
---|---|
<input type="password">を作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | <input>の各要素を指定。 |
hidden ( $fieldName [ , $options ] ) | |
---|---|
<input type="hidden">を作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | <input>の各要素を指定。 |
textarea ( $fieldName [ , $options ] ) | |
---|---|
<textarea>を作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options['value'] | <textarea>内に表示する値を指定する。 |
checkbox ( $fieldName [ , $options ] ) | |
---|---|
<input type="checkbox">を作成する 同時に送信確認のためのhiddenフォームを作成する |
|
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | <input>の各要素を指定。 |
radio ( $fieldName [ , $options [ , $attributes ] ] ) | |
---|---|
<input type="radio">を作成する 同時に送信確認のためのhiddenフォームを作成する |
|
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | ラジオボタンに設定する値を指定。 送信するvalueをキー、表示する文字列を値とした配列で指定する。 |
$attributes['default'] | デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$attributes['value'] | デフォルトで選択される値を指定。 入力値より優先される。 |
$attributes['legend'] | <fieldset>内の<legend>の値を指定する。 falseにすると<fieldset>自体が出力されない。 |
$attributes['separator'] | 各ラジオボタンの間に表示する内容があれば指定。 |
$attributes['label'] | なんかチェックしてるけど意味がないみたい? |
select ( $fieldName [ , $options , [ $selected [ , $attributes [ , $showEmpty ] ] ] ] ) | |
---|---|
<select><option>を作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options | <option>に設定する内容を指定。 送信するvalueをキー、表示する文字列を値とした配列で指定する。 |
$selected | デフォルトで選択される値を指定。 入力値より優先される。 $attributes['multiple']を有効化した場合は配列で指定すると複数選択できる。 |
$attributes['default'] | $selected=nullの場合のみ有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$attributes['value'] | $selected=nullの場合のみ有効。 デフォルトで選択される値を指定。 入力値より優先される。 |
$attributes['multiple'] | trueまたはmultipleにすると<select multiple="multiple" >になる。 'checkbox'にするとチェックボックスになる。 |
$attributes['escape'] | falseにすると$optionsの値をエスケープしない。 |
$attributes['showParents'] | ? |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 input()はデフォルトが非表示だが、こちらはデフォルトで空欄表示。 |
year ( $fieldName [ , $minYear [ , $maxYear [ , $selected [ , $attributes [ , $showEmpty ] ] ] ] ] ) | |
---|---|
年選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['year']" id="ModelName入力値Year">になる。 |
$minYear | 選択可能な最初の年を指定。 デフォルトは現在-20年。 |
$maxYear | 選択可能な最後の年を指定。 デフォルトは現在+20年。 |
$selected | デフォルトで選択される値を指定。 指定は西暦年もしくはstrtotimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
month ( $fieldName [ , $selected [ , $attributes [ , $showEmpty ] ] ] ) | |
---|---|
月選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['month']" id="ModelName入力値Month">になる。 |
$selected | デフォルトで選択される値を指定。 指定は月もしくはstrtotimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$attributes['monthNames'] | デフォルトは英語表記だが、falseにすると数値になる。 任意の値を設定はできない。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
day ( $fieldName [ , $selected [ , $attributes [ , $showEmpty ] ] ] ) | |
---|---|
日付選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['day']" id="ModelName入力値Day">になる。 |
$selected | デフォルトで選択される値を指定。 指定は日付もしくはstrtotimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
hour ( $fieldName [ , $format24Hours [ , $selected [ , $attributes [ , $showEmpty ] ] ] ] ) | |
---|---|
時間選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['hour']" id="ModelName入力値Hour">になる。 |
$format24Hours | trueにすると24時間制になる。 デフォルトは12時間制。 |
$selected | デフォルトで選択される値を指定。 指定は時間もしくはstrtotimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
minute ( $fieldName [ , $selected [ , $attributes [ , $showEmpty ] ] ] ) | |
---|---|
分選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['minute']" id="ModelName入力値Minute">になる。 |
$selected | デフォルトで選択される値を指定。 指定は分もしくはstrtotimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['interval'] | 表示する間隔を指定。 デフォルトは毎分。 開始は0分で変更不能。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
meridian ( $fieldName [ , $selected [ , $attributes [ , $showEmpty ] ] ] ) | |
---|---|
AM/PM選択フォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <select name="data[ModelName][入力値]['minute']" id="ModelName入力値Minute">になる。 |
$selected | デフォルトで選択される値を指定。 指定は'am','pm'。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['default'] $attributes['value'] |
$selected=nullの場合に有効。 デフォルトで選択される値を指定。 入力値が存在する場合はそちらが優先される。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
dataTime ( $fieldName [ , $dateFormat [ , $timeFormat [ , $selected [ , $attributes [ , $showEmpty ] ] ] ] ] ) | |
---|---|
日時選択フォームを作成する。 上記year(),month(),day(),hour(),minute(),meridian()を纏めて作成する。 |
|
引数 | 解説 |
$fieldName | フィールド名。 |
$dateFormat | 年月日の表示内容、表示順番をYMDで指定。 |
$timeFormat | 'NONE'で非表示になる。 24で24時間制になり、AM/PM選択フォームが消える。 デフォルトは12時間制。 |
$selected | デフォルトで選択される値を指定。 指定はstrftimeの解釈できる値。 入力値より優先される。 nullだと初期値無しで、入力値を優先する。 |
$attributes['id'] | <select id>の値を"ModelNamefieldNameYear"から"idYear"等に変更する。 |
$attributes['separator'] | 年/月/日の選択肢の間に表示する文字列を指定。 個別の設定はできない。 |
$attributes['monthNames'] | デフォルトは英語表記だが、falseにすると数値になる。 任意の値を設定はできない。 |
$options['minYear'] $options['maxYear'] |
年の選択肢に表示する最大値、最小値を指定。 |
$attributes['minuteInterval'] $attributes['interval'] |
分の表示間隔を指定。 minuteIntervalが優先。 |
$attributes['default'] $attributes['value'] |
バグる。 |
$showEmpty | <option>の最上段に表示される値を指定。 falseにすると選択肢自体が消える。 |
inputs ( [ $fields [ , $blacklist ] ] ) | |
---|---|
モデルに沿った入力フォームを作成する | |
引数 | 解説 |
$fields | 表示するフィールドの配列。 省略またはnullの時は全カラムを表示。 |
$fields['fieldset'] | 指定されていれば<fieldset>のclass属性に設定される。 |
$fields['legend'] | 指定されていれば<legend>に表示される。 |
$blacklist | 指定したフィールドを表示しない。 $fieldsとどう違うのかはよくわからない。 |
file ( $fieldName [ , $options ] ) | |
---|---|
ファイルのアップロードフォームを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 <input name="data[ModelName][入力値]" id="ModelName入力値">になる。 |
$options['secure'] | ? |
label ( [ $fieldName [ , $text [ , $attributes ] ] ] ) | |
---|---|
ラベルを作成する | |
引数 | 解説 |
$fieldName | フィールド名。 省略またはnullの時は最後に作成したフォームに対するラベルが作成される。 |
$text | ラベルを貼るテキスト。 |
$attributes | 特になし |
isFieldError ( $field ) | |
---|---|
フィールドにバリデーションエラーが存在するかチェックする | |
引数 | 解説 |
$field | フィールド名。 |
error ( $field [ , $text [ , $options ] ] ) | |
---|---|
フィールドのバリデーションエラーの内容を表示する | |
引数 | 解説 |
$field | フィールド名。 |
$text | バリデーションエラーがある場合に表示するエラーメッセージを変更する。 falseだとデフォルトになる。 空白や未出力にはできない。 |
$options['wrap'] | エラーメッセージは通常<div>で囲まれるが、タグを変更したい場合に指定。 falseにするとタグを使用しない。 |
$options['escape'] | falseにするとエラーメッセージをエスケープしない。 |
$optionsまたは$attributesとして特に設定のない配列が来た場合、多くのメソッドにおいて<form>や<input>の属性にそのまま出力される。逆に'name'や'id'等を指定すると、デフォルトの値が破壊されてしまうので注意。
$selectedだと常時入力値より優先されてしまうので、デフォルト値を与えつつ入力値を保存するには$options['default']を使わないといけないとか、設計思想がよくわからない。
あと気になったものとして、__generateOptions('day')には日付の開始日、終了日を変更できるようなことが書いてあるのに、呼び出し側のday()が対応してないので2月でも常に1~31日が表示されてしまうとか、text()やpassword()の$optionsに'type'=>'hidden'とかを無理矢理上書きするとおかしなことになるとか、<option>に$selected=trueとかすると全ての<option>にselected="selected"がくっつくとか、なんか全体的に微妙な出来。
CakePHPの記事一覧
PR
トラックバック
トラックバックURL: