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 欄位是必要且必須包含一个值。
	}
}

input($key = null, $default = null)

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() 方法的別名。