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_attrtrue に設定されているとフォームの 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');

input()

Validation input() メソッドのエイリアス。 現在のフィールドの入力値を返す。入力値が無い場合は null を返す。

validated()

Validation validated() メソッドのエイリアス。 現在のフィールドのバリデーションされた入力値を返す。バリデーションされた入力値が無い場合は null を返す。

error()

Validation error() メソッドのエイリアス。 このフィールドのバリデーション実行後のエラーメッセージを返す。エラーが検出されない場合は false を返す。