Fieldset_Field Class
Fieldset_Field クラスは、フィールドセットの単一のフィールドを定義します。フィールドの種類、
フィールドのレンダリング方式、フィールド入力をバリデーションするときに使用されるルール、を定義します。
技術的にはスタンドアロンの Fieldset_Field インスタンスを作成することが可能ですが、通常は
Fieldsets の add_field() メソッドを使用して Fieldset の一部として作成されます。
set_fieldset(Fieldset $fieldset)
スタンドアロンの Fieldset_Field オブジェクトを (Fieldset クラス経由ではなく) 作成した場合、
set_fieldset メソッドを使用してフィールドセットオブジェクトにフィールドオブジェクトを割り当てできます。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$fieldset |
必須 |
このフィールドオブジェクトに割り当てたい Fieldset のインスタンス |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
$fieldset = \Fieldset::forge('myfieldset');
$field = new \Fieldset_Field('client', 'Name of the client');
$field->set_fieldset($fieldset);
|
set_name($name, $update = true)
Change the name of a field.
Static |
No |
Parameters |
Param |
Default |
Description |
$name |
required |
Name of the field when generating the HTML for this field. |
$update |
true |
When set to false, the associated fieldset is not updated. This is for internal use only! |
|
Returns |
Fieldset_Field Object, for chaining |
Example |
$fieldset->field('fieldname')->set_name('newfieldname');
|
If the fieldset field is part of a field, the field will be renamed in the fieldset too. Field order in the fieldset will be maintained.
set_label($label)
フィールドのラベルを設定/変更します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$label |
必須 |
このフィールドの HTML を生成するときに表示されるラベル。 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
$fieldset->field('fieldname')->set_label('New Label');
|
set_type($type)
HTML フォームフィールドタイプを設定/変更します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$type |
必須 |
このフィールドの HTML を生成するときに使用する入力フィールドタイプ |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// <input type="hidden"... > を生成
$fieldset->field('fieldname')->set_type('hidden');
|
set_value($value, $repopulate = false)
フィールドの値を設定/変更します。ラジオボタン、チェックボックスの場合、 repopulate を選択すると、
現在の値と渡された値に応じて "checked" を再計算します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$type |
必須 |
このフィールドの HTML を生成するときに使用する入力フィールドタイプ |
$repopulate |
false
|
true にすると、値に応じてフィールドを再計算する (ラジオボタンとチェックボックスの場合のみ) |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
$fieldset->field('fieldname')->set_value('this is the new value');
|
set_description($description)
フィールドの説明を設定/変更します。説明は、フィールドテンプレートの {description} タグに
マッピングされます。たとえばヘルプテキストを表示する、などに使用できます。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$description |
必須 |
フィールドの説明 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
$fieldset
->field('fieldname')
->set_description('ここに何か入力してください。');
|
set_template($template = null)
このフィールドのカスタムフィールドテンプレートを設定またはリセットします。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$template |
null
|
このフィールドを HTML レンダリングするのに使用するテンプレート |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
$fieldset
->field('fieldname')
->set_template('<div class=\"{error_class}\">{label}{required}</div><div class="field-fieldname">{field} {description} {error_msg}</div>');
|
値を渡さないか、 null を渡した場合、 form.php 設定ファイルに定義されているデフォルトテンプレートを使用します。
set_error_message($rule, $msg)
指定したバリデーションルールのカスタムエラーメッセージを設定します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$rule |
必須 |
デフォルトのエラーメッセージを上書きしたいバリデーションルール |
$msg |
必須 |
表示するメッセージ。フィールドラベルは :label を、
ルールに渡すパラメータは :param:<number> をプレースホルダに使用できます。
|
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// "valid_string" バリデーションルールのカスタムエラーメッセージを設定
$fieldset
->field('fieldname')
->set_error_message('valid_string', ':label は大文字と小文字の両方が含まれている必要があります!');
// "exact_length" 用のカスタムエラーメッセージを設定
$fieldset
->field('fieldname')
->set_error_message('exact_length', ':label は必ずしも :param:1 ではありません!');
|
get_error_message($rule)
バリデーションルールにカスタムメッセージがあるかどうかをチェックします。存在する場合、そのメッセージを返します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$rule |
必須 |
メッセージを取得したいバリデーションルール名。 |
|
返り値 |
Mixed, カスタムメッセージがある場合は文字列、そうでなければ null |
例 |
// "valid_string" バリデーションルールのカスタムエラーメッセージを設定
$fieldset
->field('fieldname')
->set_error_message('valid_string', ':label は大文字と小文字の両方が含まれている必要があります!');
// 返り値: :label は大文字と小文字の両方が含まれている必要があります!
$message = $fieldset->field('fieldname')->get_error_message('valid_string');
|
add_rule($callback)
フィールドにバリデーションルールを追加します。規定のバリデーションルール名か、あるいは
このフィールドをバリデーションするコールバックを指定します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$callback |
必須 |
バリデーションルール名、または完全なコールバックのいずれか。 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// フィールド上の valid_string ルールを設定
$fieldset->field('fieldname')->add_rule('valid_string', array('alpha-numeric', 'dots', 'spaces'));
// そして必須なフィールドを作成
$message = $fieldset->field('fieldname')->add_rule('required');
|
required ルールを設定すると、フォームの input タグに "required" 属性がセットされます。
delete_rule($callback, $set_attr = true)
フィールドのバリデーションルールを取り除きます。規定のバリデーションルール名か、あるいは
このフィールドをバリデーションするコールバックを指定します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$callback |
必須 |
バリデーションルール名、または完全なコールバックのいずれか。 |
$set_attr |
true
|
true に設定すると、ルールに関連する属性も更新します。 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// フィールドから valid_string ルールを取り除く
$fieldset->field('fieldname')->delete_rule('valid_string');
// そして、必須項目の指定を取り除く
$message = $fieldset->field('fieldname')->delete_rule('required', true);
|
required ルールを取り除くとき、 $set_attr が true に設定されているとフォームの input タグの "required" 属性も取り除かれます。
set_attribute($attr, $value = null)
このフィールドに、 1 つ以上の HTML 属性を設定します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$attr |
必須 |
属性名(文字列)、または属性と値からなる連想配列 |
$value |
null
|
属性値。$attr が配列の場合は無効 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// カスタムな CSS スタイルを追加
$fieldset->field('fieldname')
->set_attribute('style', 'font-weight:bold;color:yellow;');
// もしくは一度に複数の属性を追加
$fieldset->field('fieldname')->set_attribute(array(
'style' => 'font-weight:bold;color:yellow;',
'disabled' => 'disabled'
));
|
null を値として渡した場合、属性リストから属性を取り除きます。
get_attribute($key = null, $default = null)
このフィールドの、 1 つ以上の HTML 属性を取得します。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$key |
null
|
属性名または属性名の配列。null の場合はすべての属性を返す。 |
$default |
null
|
属性が設定されていない場合に返す値。 |
|
返り値 |
Mixed 単一の属性値、あるいは $key が属性の配列の場合は、配列 |
例 |
// カスタムスタイルが定義されていたら取得、スタイルが未定義なら false
$style = $fieldset->field('fieldname')
->get_attribute('style', false);
|
set_options($value, $label = null, $replace_options = false)
オプションを設定します。ラジオボタン、チェックボックス、セレクトボックスのみ有効。
静的 |
いいえ |
パラメータ |
パラメータ |
デフォルト |
説明 |
$value |
必須 |
オプションの値、または値とラベルの連想配列。 |
$label |
null
|
値に設定するラベル。 $value が配列でない場合のみ使用する。 |
$replace_options |
false
|
true の場合は既存のオプションを削除して新しいオプションを設定する。 |
|
返り値 |
Fieldset_Field オブジェクト、メソッドチェーン用 |
例 |
// フィールドが select の場合: <option value="1">Label</option>
// フィールドが checkbox の場合: <label>Label</label><input type="checkbox" ... />
$style = $fieldset->field('fieldname')->set_options('1', 'Label');
|
fieldset()
このフィールドが関連付けられたフィールドセットオブジェクトを取得します。
静的 |
いいえ |
パラメータ |
なし |
返り値 |
Fieldset インスタンス |
例 |
// true が返る
$same = ($fieldset === $fieldset->field('fieldname')->fieldset());
|
add($name, $label = '', array $attributes = array(), array $rules = array())
Fieldset add() メソッドのエイリアス。
add_before($name, $label = '', array $attributes = array(), array $rules = array(), $fieldname = null)
Fieldset add_before() メソッドのエイリアス。
add_after($name, $label = '', array $attributes = array(), array $rules = array(), $fieldname = null)
Fieldset add_after() メソッドのエイリアス。
build()
このフィールドのフォーム HTML を生成します。
静的 |
いいえ |
パラメータ |
なし |
返り値 |
文字列、生成される HTML |
例 |
// フィールドが select の場合: <option value="1">Label</option>
// フィールドが checkbox の場合: <label>Label</label><input type="checkbox" ... />
$style = $fieldset->field('fieldname')->set_options('1', 'Label');
|
Validation input() メソッドのエイリアス。
現在のフィールドの入力値を返す。入力値が無い場合は null
を返す。
validated()
Validation validated() メソッドのエイリアス。
現在のフィールドのバリデーションされた入力値を返す。バリデーションされた入力値が無い場合は null
を返す。
error()
Validation error() メソッドのエイリアス。
このフィールドのバリデーション実行後のエラーメッセージを返す。エラーが検出されない場合は false
を返す。