Validation 类別
类別幫助你驗證使用者輸入,如果你想要同時建立一个表单&它的驗證,
使用 Fieldset 类別代替。
类別方法
forge($fieldset = 'default')
forge 方法回傳一个新的 Validation 實例。
并用一个 $fieldset 與 Fieldset 連結。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$fieldset |
字串|Fieldset |
'default'
|
名稱或要連結的 Fieldset 實例。 |
|
回傳 |
Validation 物件 |
拋出 |
\DomainException,當 Fieldset 名稱或實例已经有一个關聯的 Validation 實例。 |
範例 |
// 建立一个新的 Validation 實例
$val = Validation::forge();
// 關聯新的 Validation 實例與一个Fieldset,使用 Fieldset 名稱
$val = Validation::forge('my_fieldset');
// 關聯新的 Validation 實例與一个Fieldset,透過傳遞 Fieldset 實例
$fieldset = Fieldset::instance('my_fieldset');
$val = Validation::forge($fieldset);
|
instance($name = null)
instance 方法回傳與 Vaildation 實例關聯的
Fieldset 實例的識別符 $name,
或預設的 Fieldset(如果需要的話会建立)。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$name |
字串 |
null
|
你想回傳的 Validation 的 Fieldset 名稱。 |
|
回傳 |
Validation 物件
或 false 如果指定 Fieldset 實例不存在
|
範例 |
// 取得預設 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 |
字串 |
無
|
要指派驗證規則的欄位名稱。 |
$label |
字串 |
無
|
欄位的标籤。 |
$rules |
混合 |
無
|
帶有群組在方括號內的規則參数(選擇性)的驗證規則組,
并用逗號分隔。在被用垂直線或管道符號(|)的規則可被傳遞做为一个字串,
或做为一个規則陣列。
|
|
回傳 |
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 方法为此 Validation 實例覆寫語言档案訊息。當沒有訊息被指派到你正在使用的規則時,它也是有用的。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$rule |
字串 |
無
|
要指派此訊息的規則名稱。 |
$message |
字串|null |
無
|
要为此規則顯示的訊息,如果傳遞一个字串,或 null 來回復到語言档案。 |
|
回傳 |
Validation 實例 |
範例 |
// 覆寫 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 方法为此 Validation 實例取回一个指定的错误訊息。只有透過 set_message 方法設定的訊息会被回傳。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$rule |
字串 |
無
|
你需要取得訊息的規則名稱。 |
|
回傳 |
字串 |
範例 |
// 覆寫需要的規則訊息
$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 方法添加一組自訂或擴充的驗證驗證規則。你不須要寫一个完整的回呼(callback),只要一个类別名稱的字串。这也允許從此物件覆寫功能,因为新类別是附加在前的。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$class |
字串|物件 |
無
|
做为字串的类別名稱,或物件名稱 |
|
回傳 |
Validation 實例 |
範例 |
$val->add_callable('myvalidation');
为了完整使用此方法的範例,檢查擴充 Validation 类別,以及所需要的类別。
|
remove_callable($class)
remove_callable 方法從可呼叫陣列移除一个可呼叫。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$class |
字串|物件 |
無
|
做为字串的类別名稱,或物件名稱 |
|
回傳 |
Validation 實例 |
範例 |
$val->remove_callable('myvalidation');
|
callables()
callables 方法取回你不需要添加一个完整回呼(callback)但只要方法名稱的物件
run($input = null, $allow_partial = false, $temp_callables = array())
針對傳遞的 input 运行定義的驗證規則,或 Input::post() 如果沒傳東西的話。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$input |
陣列 |
null
|
input 欄位和值的關聯陣列 |
$allow_partial |
布林 |
false
|
如果为 false,全部有定義驗證規則的欄位必須在 input 出现 |
$temp_callables |
陣列 |
array()
|
Any additional callables required to run all defined validation rules |
|
回傳 |
布林,如果驗證過为 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();
// Title 欄位是必要且必須包含一个值。
}
}
|
Returns one or all input values, or the default value if the requested key is not present in the input.
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$key |
字串 |
null
|
Name of the input field, or null to return all input |
$default |
混合 |
null
|
Value to return if the key is not present in the input |
|
回傳 |
Mixed, the input value or the value specified as $default |
範例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ($val->run())
{
// if something was posted, echo it
echo $val->input('title');
}
|
Input is only available after the validation rules have run.
By default, input() will fall back to Input::param() when no rules have run. This behaviour can be controlled through the validation config file.
validated($field = null, $default = false)
Returns one or all validated input values, or the default value if the requested key is not present in the validated input.
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
null
|
Name of the input field, or null to return all input |
$default |
混合 |
null
|
Value to return if the key is not present in the input |
|
回傳 |
Mixed, the validated input value or the value specified as $default |
範例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ($val->run())
{
// if something was posted, echo it
echo $val->validated('title');
}
|
Where input() returns the raw input value, validated() will return the validated value,
which might be different than the input because some validation rules alter the input (for example a rule like strtoupper).
error($field = null, $default = false)
error 方法回傳在驗證期間发生的指定或所有错误。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
null
|
你想要回傳的 Validation_Error 實例的欄位名稱。如果你沒指定,会回傳所有错误物件。 |
$default |
混合 |
false
|
如果指定欄位的错误不存在,回傳这个值。 |
|
回傳 |
Validation_Error 實例
或 陣列 如果你沒指定欄位名稱 |
範例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run(array()))
{
foreach ($val->error() as $field => $error)
{
echo $error->get_message();
// Title 欄位是 required 的并且必須包含一个值。
}
}
|
error_message($field = null, $default = false)
error_message 方法回傳在驗證期間发生的指定或所有错误訊息。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$field |
字串 |
null
|
你想要回傳的错误訊息的欄位名稱。如果你沒指定,会回傳所有错误訊息。 |
$default |
字串 |
false
|
如果指定欄位的错误不存在,回傳这个值。 |
|
回傳 |
字串
或 陣列 如果你沒指定欄位名稱 |
範例 |
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');
if ( ! $val->run(array()))
{
foreach ($val->error_message() as $field => $message)
{
echo $message;
// Title 欄位是 required 的并且必須包含一个值。
}
}
|
show_errors($options = array())
show_errors 根據定義的樣板回傳呈现在 HTML 中的驗證错误列表。
靜態 |
否 |
參数 |
參数 |
类型 |
預設 |
描述 |
$options |
陣列 |
array()
|
HTML 樣板的選項,以覆寫來自驗證配置档案的預設值 |
|
回傳 |
字串,呈现的 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() 方法的別名。