FuelPHP: Một số kiến thức cơ bản về Validation (P2)

Hôm nay mình sẽ giới thiệu tiếp đến các bạn kiến thức Validation trong FuelPHP. Nếu quên các bạn có thể tìm hiểu lại tại đây

Class Method

forge($fieldset = 'default')

Phương thức forget() trả về một Vaidation mới, validation này liên kết Fieldset với tên $fieldset. The forge method returns a new Validation instance, and links it with a Fieldset with name $fieldset. Static: Yes Parameters: $fieldset (string | Fieldset) Tên hoặc instance của Fieldset liên kết đến. Returns: đối tượng Validation Throws: \DomainException khi tên hoặc instance của Fieldset đã có một Validation instance liên quan. Ví dụ:

// Create a new validation instance
$val = Validation::forge();

// Associate the new Validation instance with a Fieldset, using the fieldset name
$val = Validation::forge('my_fieldset');

// Associate the new Validation instance with a Fieldset, by passing the fieldset instance
$fieldset = Fieldset::instance('my_fieldset');
$val = Validation::forge($fieldset);

instance($name = null)

Phương thức instance() trả về Validation instance liên quan đến instance Fieldset với tên $name, hoặc Fieldset mặc định (được tạo nếu cần thiết). Static: Yes Parameters: $name (string) Tên của Fieldset có Validation instance mà bạn muốn trả lại. Returns: đối tượng Validation hoặc false nếu Fieldset instance được chỉ định không tồn tại

Ví dụ:
// Get the Validation instance of the default Fieldset
$val = Validation::instance();

// Get the Validation instance of a particular Fieldset
$val = Validation::instance('my_fieldset');

active()

Phương thức active() trả về validation instance hiện đang hoạt động. Static: Yes Parameters: none Returns: Validation (validation instance hiện đang hoạt động) Ví dụ:

// Get the currently active validation instance
$val = Validation::active();

active_field()

Phương thức active_field() trả về field đang được validate. Static: Yes Parameters: none Returns: Fieldset_Field - trường hiện đang được validate Ví dụ:

// Get the field currently being validated
$field = Validation::active_field();

fieldset()

Phương thức fieldset() trả về Fieldset liên quan. Static: No Paramaterss: none Returns: Fieldset - Fieldset có liên quan Ví dụ:

// Get the related Fieldset
$val = Validation::forge('my_fieldset');
$fieldset = $val->fieldset();

add_field($name, $label, $rules)

Phương thức add_field() là một cách gọi khác đơn giản cho phương thức add() cho phép xác định tên trường, nhãn và các quy tắc trong một bước. Static: No Parameters: $name (string) Tên trường để gán quy tắc validate cho. $label (string) Nhãn của trường. $rules (mixed) Tập hợp các quy tắc validate với các tham số quy tắc (tùy chọn) được nhóm trong dấu ngoặc vuông và được phân tách bằng dấu phẩy. Nó có thể được truyền như một chuỗi nơi mà các quy tắc được tách ra ngăn cách bởi ký tự (|), hoặc như là một mảng của các quy tắc. Returns: Fieldset_Field Ví dụ:

// Set rules on different types of fields
$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]');

// as an array
$val->add_field('username', 'Username', array('required', 'trim', 'valid_string[alpha,lowercase,numeric]'));

set_message($rule, $message)

Phương thức set_message() ghi đè lên các thông báo language file cho validation instance này. Nó cũng hữu ích khi không có message nào được gán cho quy tắc mà bạn đang sử dụng. Static: No Parameters: $rule (string) Tên của quy tắc để gán thông báo này cho. $message (string | null) Thông báo để hiển thị cho quy tắc này, nếu một chuỗi được thông qua, hoặc null để trở lại language file. Returns: Validation instance Ví dụ:

// Overwrite the required rule message
$val->set_message('required', 'You have to fill in your :label so you can proceed');
// .. when done, set back the default message
$val->set_message('required', null);
// A message for a custom rule you created
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');

get_message($rule)

Phương thức get_message() fetch thông báo lỗi cụ thể cho validation instance này. Chỉ các thông báo thiết lập thông qua phương thức set_message được trả lại. Static: No Parameters: $rule (string) Tên của quy tắc mà bạn cần để có được thông báo. Returns: string Ví dụ:

// Overwrite the required rule message
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');
// .. later, or some where else in your code, get this message
$val->get_message('required', null);

add_callable($class)

Phương thức add_callable() thêm một tập hợp các quy tắc vaildation hợp lệ hoặc mở rộng mới. Bạn không cần phải viết một callback đầy đủ, chỉ cần tên lớp như một chuỗi sẽ làm. Điều này cũng cho phép ghi đè các chức năng từ đối tượng này bởi vì lớp mới được thêm vào trước. Static: No Parameters: $class (string|Object) Tên của lớp là chuỗi, hoặc tên đối tượng. Returns: Validation instance Ví dụ:

	
$val->add_callable('myvalidation');

remove_callable($class)

Phương thức remove_callable() remove một callable từ mảng callables. Static: No Parameters: $class (string|Object) Tên của lớp là chuỗi, hoặc tên đối tượng. Returns: Validation instance Ví dụ:


$val->remove_callable('myvalidation');

callables()

Phương thức callables() fetch các đối tượng mà bạn không cần phải thêm một callback đầy đủ, mà chỉ là tên phương thức. Static: No Paramaters: none Returns: array

run($input = null, $allow_partial = false, $temp_callables = array())

Run định nghĩa các quy tắc validation đối với input được truyền vào hoặc Input::post() nếu không có gì truyền vào. Static: No Paramaters: $input (array) Mảng của các field và value. $allow_partial (bool) Nếu false, tất cả các field có quy tắc validation được xác định phải có trong đầu vào. $temp_callables (array) Bất kỳ callables bổ sung nào được yêu cầu để runn tất cả các quy tắc validation được xác định. Returns: Boolean, true nếu đầu vào được xác nhận thành công, false nếu việc xác nhận thất bại. Ví dụ:

$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ( ! $val->run())
{
    foreach ($val->error() as $field => $error)
    {
        echo $error->get_message();
        // The field Title is required and must contain a value.
    }
}

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

Trả về một hoặc tất cả các giá trị đầu vào, hoặc giá trị mặc định nếu key được yêu cầu không có trong đầu vào. Static: No Paramaters: $key (string) Tên của trường đầu vào, hoặc null để trả về tất cả các đầu vào. $default (mixed) Giá trị trả lại nếu key không có trong đầu vào. Returns: Mixed, giá trị đầu vào hoặc giá trị được chỉ định là mặc định $default Ví dụ:

$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ($val->run())
{
    // if something was posted, echo it
    echo $val->input('title');
}

Input chỉ khả dụng sau khi các quy tắc validation đã run. Theo mặc định, input () sẽ quay trở lại Input :: param () khi không có quy tắc nào được chạy. Hành vi này có thể được kiểm soát thông qua validation config file.

validated($field = null, $default = false)

Trả về một hoặc tất cả các giá trị đầu vào đã được validation hoặc giá trị mặc định nếu key được yêu cầu không có trong đầu vào đã được xác nhận. Static: No Paramaters: $key (string) Tên của trường đầu vào, hoặc null để trả về tất cả các đầu vào. $default (mixed) Giá trị trả lại nếu key không có trong đầu vào. Returns: Mixed, giá trị đầu vào được xác nhận hoặc giá trị được chỉ định là mặc định $default. Ví dụ:

$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ($val->run())
{
    // if something was posted, echo it
    echo $val->validated('title');
}

Trong trường hợp input() trả về giá trị đầu vào raw, validation() sẽ trả về giá trị xác nhận, có thể khác so với đầu vào bởi vì một số quy tắc validation thay đổi đầu vào (ví dụ như một quy tắc như strtoupper).

error($field = null, $default = false)

Phương thức error() trả về lỗi cụ thể hoặc tất cả các lỗi xảy ra trong khi validation. Static: No Paramaters: $field (string) fieldname của Validation_Error instance bạn muốn trả lại. Nếu bạn không xác định fieldname, sau đó trả về tất cả các đối tượng lỗi. $default (mixed) Nếu lỗi của trường được xác định không tồn tại, trả về giá trị này. Returns: Validation_Error instance hoặc mảng nếu bạn không chỉ định fieldname Ví dụ:

$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)

Phương thức error_message() trả về thông báo lỗi cụ thể hoặc tất cả các thông báo lỗi xảy ra trong quá trình xác nhận. Static: No Paramaters: $field (string) Trường tên của thông báo lỗi bạn muốn trả lại. Nếu bạn không chỉ định fieldname, sau đó trả về tất cả các thông báo lỗi. $default (mixed) Nếu lỗi của trường được xác định không tồn tại, trả về giá trị này. Returns: chuỗi hoặc mảng nếu bạn không chỉ định fieldname Ví dụ:

$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ( ! $val->run(array()))
{
    foreach ($val->error_message() as $field => $message)
    {
        echo $message;
        // The field Title is required and must contain a value.
    }
}

show_errors($options = array())

Show_errors trả về danh sách các lỗi xác nhận được hiển thị trong HTML theo template được xác định. Static: No Paramaters: $options (array) Tùy chọn cho HTML template, để ghi đè các giá trị mặc định từ tệp tin xác thực cấu hình. Returns: chuỗi, render HTML Ví dụ:

$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ( ! $val->run(array()))
{
    echo $val->show_errors();
}

Các tùy chọn sau có thể được thông qua: 'open_list', 'close_list', 'open_error', 'close_error' và 'no_errors'. Theo mặc định một danh sách không có thứ tự được tạo ra, và một chuỗi rỗng được trả lại nếu không tìm thấy lỗi xác nhận.

Tài liệu tham khảo

https://fuelphp.com/docs/classes/validation/methods.html