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 インスタンスを返します。
静的 |
はい |
パラメータ |
なし
|
返り値 |
Validation - 現在アクティブな Validation インスタンス |
例 |
// 現在アクティブな Validation インスタンスを取得
$val = Validation::active();
|
active_field()
active_field メソッドは 現在バリデーションされているフィールドを返します。
静的 |
はい |
パラメータ |
なし
|
返り値 |
Fieldset_Field - 現在バリデーションされているフィールド |
例 |
// 現在バリデーションされているフィールドを取得
$field = Validation::active_field();
|
fieldset()
fieldset メソッドは関連づけられた Fieldset を返します。
静的 |
いいえ |
パラメータ |
なし
|
返り値 |
Fieldset - 関連づけられた Fieldset |
例 |
// 関連づけられた Fieldset を取得する
$val = Validation::forge('my_fieldset');
$fieldset = $val->fieldset();
|
add_field($name, $label, $rules)
add_field メソッドは add() メソッドのよりシンプルなエイリアスです。フィールドの名前、ラベル、ルールをワンステップで指定できます。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$name |
string |
なし
|
バリデーションのルールを割り当てるフィールドの名前 |
$label |
string |
なし
|
フィールドのラベル |
$rules |
mixed |
なし
|
角括弧でくくられたカンマ区切りのルールパラメータが付いた
(オプション) 、バリデーションルールのセット。
縦棒かパイプ記号 (|) で区切られた文字列として渡してもよいし、配列として渡してもよい。
|
|
返り値 |
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 |
なし
|
このメッセージを割り当てたいルールの名前 |
$message |
string | null |
なし
|
文字列を渡せばこのルールへのメッセージ文となる。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 |
なし
|
取得したいメッセージ文のルールの名前 |
|
返り値 |
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 |
なし
|
文字列で表記したクラス名、もしくはオブジェクトの名前 |
|
返り値 |
Validation インスタンス |
例 |
$val->add_callable('myvalidation');
このメソッドの使い方と、必要とされるクラスの完全な例については Validation クラスを拡張する を参照してください。
|
remove_callable($class)
remove_callable メソッドは callable 配列から指定した callable を削除します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$class |
string|Object |
なし
|
文字列で表記したクラス名、もしくはオブジェクトの名前 |
|
返り値 |
Validation インスタンス |
例 |
$val->remove_callable('myvalidation');
|
callables()
callables メソッドは、完全なコールバックを必要としないがメソッド名を必要とするオブジェクトを取得します。
静的 |
いいえ |
パラメータ |
なし |
返り値 |
array |
run($input = null, $allow_partial = false, $temp_callables = array())
メソッドに渡した入力に対して、定義済みバリデーションルールを実行します。入力が無い場合は Input::post() をバリデーションします。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$input |
array |
null
|
入力フィールドと値からなる連想配列 |
$allow_partial |
bool |
false
|
false の場合、バリデーションルールが定義されたフィールドが全て入力に存在しなければならない |
$temp_callables |
array |
array()
|
全ての定義済みバリデーションを実行するために必要なコーラブル関数 |
|
返り値 |
Boolean, バリデーションされれば true、そうでなければ false |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run())
{
foreach ($val->error() as $field => $error)
{
echo $error->get_message();
// フィールドのタイトルが必要であり、値を含まなければいけません。
}
}
|
入力値を 1 つまたは全て返す。要求したキーが入力に無い場合はデフォルトを返す。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$key |
string |
null
|
入力フィールド名。null の場合、全入力を返す。 |
$default |
mixed |
null
|
キーが入力に無い場合に返す値。 |
|
返り値 |
Mixed, 入力値または $default で指定した値 |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ($val->run())
{
// なにか投稿された場合は出力する
echo $val->input('title');
}
|
Input は、バリデーションルールが実行された後のみ利用可能です。
デフォルトでは、ルールが実行されていない場合 input() は Input::param() に戻ります。この振る舞いは、バリデーション設定ファイルで制御できます。
validated($field = null, $default = false)
バリデーションされた入力値を 1 つまたは全て返す。要求したキーが入力に無い場合はデフォルトを返す。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
デフォルト |
説明 |
$field |
string |
null
|
入力フィールド名。null の場合、全入力を返す。 |
$default |
mixed |
null
|
キーが入力に無い場合に返す値。 |
|
返り値 |
Mixed, バリデーションされた入力値または $default で指定した値 |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ($val->run())
{
// なにか投稿された場合は出力する
echo $val->validated('title');
}
|
input() は元の入力値を返しますが、validated() はバリデーションされた値を返します。
(たとえば strtoupper のような)いくつかのバリデーションルールは入力値を書き換えるので、validated() の出力する値は元の入力値と異なることがあります。
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();
// フィールドのタイトルが必要であり、値を含まなければいけません。
}
}
|
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;
// フィールドのタイトルが必要であり、値を含まなければいけません。
}
}
|
show_errors($options = array())
show_errors は定義済みテンプレートに従って、HTML形式で、バリデーションエラーのリストを返します。
静的 |
いいえ |
パラメータ |
パラメータ |
型 |
でフォルト |
説明 |
$options |
array |
array()
|
HTML テンプレートのオプション。バリデーション設定ファイルのデフォルトを上書きする。 |
|
返り値 |
string, レンダリングされた HTML |
例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run(array()))
{
echo $val->show_errors();
}
|
オプションは、'open_list', 'close_list', 'open_error', 'close_error', 'no_errors' から選択可能。
デフォルトでは順序無しリストが生成される。バリデーションエラーが無い場合は空文字列。
add($name, $label = '', array $attributes = array(), array $rules = array())
Fieldset add() メソッドの別名
add_model($class, $instance = null, $method = 'set_form_fields')
Fieldset add_model() メソッドの別名
field($name = null, $flatten = false)
Fieldset field() メソッドの別名