Validation クラス
Validation クラスは、ユーザ入力をバリデーションする際の手助けをします。
フォームの生成とバリデーションを同時にしたい場合は、代わりに Fieldset クラスを使用してください。
Class Methods
forge($fieldset = 'default')
forge メソッドは、Validation クラスの新しいインスタンスを生成します。
また、与えられた Fieldset とリンクされます。
静的 |
はい |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$fieldset |
string | Fieldset |
'default'
|
リンクする Fieldset の名前もしくはインスタンス |
|
返り値 |
Validation オブジェクト |
例外 |
\DomainException Fieldset の名前もしくはインスタンスが、既にバリデーションインスタンスに関連づけられているとき。 |
例 |
// 新しい Validation インスタンスを生成
$val = Validation::forge();
// fieldset 名を使って、新しい Validation インスタンスと Fieldset を関連づける
$val = Validation::forge('my_fieldset');
// fieldset インスタンスを渡して、新しい Validation インスタンスと Fieldset を関連づける
$fieldset = Fieldset::instance('my_fieldset');
$val = Validation::forge($fieldset);
|
instance($name = null)
instance メソッドは、$name 識別子が付与された Fieldset インスタンス、
もしくはデフォルトの Fieldset (必要とされている場合)、
このどちらかと関連付けられた Validation インスタンスを返します。
静的 |
はい |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$name |
string |
null
|
返してほしい Validation インスタンスに属する Fieldset の名前 |
|
返り値 |
Validation オブジェクト
または指定した Fieldset インスタンスが存在しなかった場合 false
|
例 |
// デフォルト Fieldset の Validation インスタンスを取得
$val = Validation::instance();
// 特定の Fieldset の Validation インスタンスを取得
$val = Validation::instance('my_fieldset');
|
active()
active メソッドは現在アクティブな Validation インスタンスを返します。
静的 |
はい |
パラメータ |
None
|
返り値 |
Validation - 現在アクティブな Validation インスタンス |
例 |
// 現在アクティブな Validation インスタンスを取得
$val = Validation::active();
|
active_field()
active_field メソッドは 現在バリデーションされているフィールドを返します。
静的 |
はい |
パラメータ |
None
|
返り値 |
Fieldset_Field - 現在バリデーションされているフィールド |
例 |
// 現在バリデーションされているフィールドを取得
$field = Validation::active_field();
|
fieldset()
fieldset メソッドは関連づけられた Fieldset を返します。
静的 |
いいえ |
パラメータ |
None
|
返り値 |
Fieldset - 関連づけられた Fieldset |
例 |
// 関連づけられた Fieldset を取得する
$val = Validation::forge('my_fieldset');
$fieldset = $val->fieldset();
|
add_field($name, $label, $rules)
add_field メソッドは add() メソッドのよりシンプルなエイリアスです。フィールドの名前、ラベル、ルールをワンステップで指定できます。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$name |
string |
None
|
バリデーションのルールを割り当てるフィールドの名前 |
$label |
string |
None
|
フィールドのラベル |
$rules |
mixed |
None
|
角括弧でくくられたカンマ区切りのルールパラメータが付いた
(オプション) 、バリデーションルールのセット。
縦棒かパイプ記号 (|) で区切られた文字列として渡してもよいし、配列として渡してもよい。
|
|
返り値 |
Fieldset_Field |
例 |
// 異なるタイプのフィールドに対するルールの設定
$val->add_field('username', 'Username', 'required|trim|valid_string[alpha,lowercase,numeric]');
$val->add_field('email', 'Email', 'required|trim|valid_email');
$val->add_field('age', 'Age', 'valid_string[numeric]');
// 配列としてルールを渡す
$val->add_field('username', 'Username', array('required', 'trim', 'valid_string[alpha,lowercase,numeric]'));
|
set_message($rule, $message)
set_message メソッドは、このバリデーションインスタンスに設定された language ファイルのメッセージ文を上書きします。使いたいルールにメッセージ文が設定されていない場合にも便利です。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$rule |
string |
None
|
このメッセージを割り当てたいルールの名前 |
$message |
string | null |
None
|
文字列を渡せばこのルールへのメッセージ文となる。null を渡すと language ファイルのメッセージ文に戻る |
|
返り値 |
Validation instance |
例 |
// required ルールのメッセージを上書き
$val->set_message('required', 'You have to fill in your :label so you can proceed');
// .. 用が済んだら、デフォルトのメッセージ文に戻す
$val->set_message('required', null);
// 作ったカスタムルールに対するメッセージ文
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');
|
get_message($rule)
get_message メソッドは、このバリデーションインスタンスのための特定のエラーメッセージ文を取得します。set_message メソッドを介して設定されたメッセージ文のみが返されます。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$rule |
string |
None
|
取得したいメッセージ文のルールの名前 |
|
返り値 |
string |
例 |
// required ルールのメッセージ文を上書き
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');
// .. その後か、他のどこかでこのメッセージ文を取得
$val->get_message('required', null);
|
add_callable($class)
add_callable メソッドは、独自、もしくは拡張されたバリデーションルールのセットを追加します。クラス名となる文字列を書けばよく、全てのコールバックを書く必要はありません。新しいクラスが追加されるため、このオブジェクトから機能を上書きすることも可能です。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$class |
string|Object |
None
|
文字列で表記したクラス名、もしくはオブジェクトの名前 |
|
返り値 |
Validation インスタンス |
例 |
$val->add_callable('myvalidation');
このメソッドの使い方と、必要とされるクラスの完全な例については Validation クラスを拡張する を参照してください。
|
remove_callable($class)
remove_callable メソッドは callable 配列から指定した callable を削除します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$class |
string|Object |
None
|
文字列で表記したクラス名、もしくはオブジェクトの名前 |
|
返り値 |
Validation インスタンス |
例 |
$val->remove_callable('myvalidation');
|
callables()
callables メソッドは、完全なコールバックを必要としないがメソッド名を必要とするオブジェクトを取得します。
静的 |
いいえ |
パラメータ |
None |
返り値 |
array |
error($field = null, $default = false)
error メソッドはバリデーション中に発生する特定のエラーまたは全てのエラーを返します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$field |
string |
null
|
返したい Validation_Error インスタンスのフィールド名。フィールド名を指定しない場合、全てのエラーオブジェクトを返す。 |
$default |
mixed |
false
|
指定したフィールドがエラー無しの場合、この値を返す。 |
|
返り値 |
Validation_Error インスタンス
またはフィールド名を指定しない場合は array |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run(array()))
{
foreach ($val->error() as $field => $error)
{
echo $error->get_message();
// The field Title is required and must contain a value.
}
}
|
error_message($field = null, $default = false)
error_message メソッドはバリデーション中に発生する特定のエラーメッセージまたは全てのエラーメッセージを返します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$field |
string |
null
|
返したいエラーメッセージのフィールド名。フィールド名を指定しない場合、全てのエラーメッセージを返す。 |
$default |
string |
false
|
指定したフィールドが存在しない場合、この値を返す。 |
|
返り値 |
string
またはフィールド名を指定しない場合 array |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run(array()))
{
foreach ($val->error_message() as $field => $message)
{
echo $message;
// フィールドのタイトルが必要であり、値を含まなければいけません。
}
}
|
More coming soon...