忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/03/19 20:39 |
CakePHP-08:CakePHPのform全メソッド

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


2009/12/11 22:12 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<買ったものリスト 2009/12/13 | HOME | Android開発環境を入れる>>
忍者ブログ[PR]