Codeigniter form validation nhiều ngôn ngữ

0
592

Bài viết dành cho Codeigniter version <= 3, vì tại thời điểm bài viết này Codeigniter đã lên version 4.

1. Framework Codeigniter là gì?

Codeigniter là một PHP Framework. Anh em xem tại link để hiểu hơn về Codeigniter: https://codeigniter.com/userguide3/general/welcome.html

2. Làm thế nào để validation form

Ví dụ mặc đinh khai bái form validation trong Codeigniter.

$this->load->library(‘form_validation’); 
$this->form_validation->set_rules(‘field_name’, ‘Field Lable’, ‘rule1|rule2|rule3’);

Ví dụ: Validate yêu cầu bắt buộc nhập giá sản phẩm và giá sản phẩm phải lớn hơn 1

$this->load->library(‘form_validation’); 
$this->form_validation->set_rules(‘product_pricae’, ‘Product price’, ‘required|greater_than[1]’);

Bắt lỗi Error validation

$this->load->library(‘form_validation’); 

$this->form_validation->set_rules(‘product_pricae’, ‘Product price’, ‘required|greater_than[1]’); 
if( $this->form_validation->run() == FALSE){ 
    $errors = $this->form_validation->error_array(); 
    print_r($errors); 
}

Màn hình sẽ xuất ra lỗi nếu giá sản phẩm bạn nhập là số 0.

// The Product price field must contain a number greater than 1

3. Làm thế nào để xuất câu thông báo lỗi bằng tiếng Việt hoặc multi language?

Codeigniter framework có cung cấp và hỗ trợ multi language. Nếu bạn muốn chỉnh sửa câu thông báo lỗi bằng tiếng Việt thì làm như sau:

3.1 Tạo folder thư mục tiếng Việt

Tạo folder vi trong folder system language như sau:

./system/language/vi

3.2 Copy file ngôn ngữ form validation

Bạn vào folder system / language / english copy file form_validation_lang.php

./system/language/english/form_validation_lang.php

Paste dán vào folder vi đã tạo bên trên.

./system/language/vi/form_validation_lang.php

3.3 Dịch file form validation lang sang tiếng Việt

Ví dụ: Các bạn có thể tham khảo một vài thông báo lỗi error form validation được dịch sang tiếng Việt ở bên dưới.

$lang['form_validation_required']		= 'Bạn phải nhập dữ liệu trường {field}.';
$lang['form_validation_isset']			= 'Bạn phải nhập dữ liệu trường {field}.';
$lang['form_validation_valid_email']		= 'Email bạn nhập ở trường {field} chưa hợp lệ.';
$lang['form_validation_valid_emails']		= 'Các email bạn nhập ở trường {field} chưa hợp lệ.';
$lang['form_validation_valid_url']		= 'Trường {field} bạn nhập URL chưa hợp lệ.';
$lang['form_validation_valid_ip']		= 'Trường {field} bạn nhập IP chưa hợp lệ.';
$lang['form_validation_min_length']		= 'Trường {field} Tối thiểu phải nhật ít nhất {param} ký tự.';
$lang['form_validation_max_length']		= 'Trường {field} bạn đã nhập vượt số ký tự {param} cho phép.';
$lang['form_validation_exact_length']		= 'Trường {field} phải nhập đúng {param} độ dài chuỗi.';
$lang['form_validation_alpha']			= 'Trường {field} chỉ được phép nhập ký tự chữ.';
$lang['form_validation_alpha_numeric']		= 'Trường {field} chỉ nhập ký tự chữ và số.';
$lang['form_validation_alpha_numeric_spaces']	= 'Trường {field} chỉ nhập ký tự số chữ và khoảng trống.';
$lang['form_validation_alpha_dash']		= 'Trường {field} field may only contain alpha-numeric characters, underscores, and dashes.';
$lang['form_validation_numeric']		= 'Trường {field} chỉ được phép nhập số.';
$lang['form_validation_is_numeric']		= 'Trường {field} phải là số.';
$lang['form_validation_integer']		= 'Trường {field} phải là số nguyên.';
$lang['form_validation_regex_match']		= 'Trường {field} định dạng chưa đúng.';
$lang['form_validation_matches']		= 'Trường {field} chưa khớp với tham số {param}.';
$lang['form_validation_differs']		= 'Trường {field} phải khác tham số {param}.';
$lang['form_validation_is_unique'] 		= 'Trường {field} phải là k1y tự duy nhất.';
$lang['form_validation_is_natural']		= 'Trường {field} phải là ký tự số.';
$lang['form_validation_is_natural_no_zero']	= 'Trường {field} phải là ký tự số không bao gồm số không.';
$lang['form_validation_decimal']		= 'Trường {field} phải là số decimal.';
$lang['form_validation_less_than']		= 'Trường {field} phải nhỏ hơn {param}.';
$lang['form_validation_less_than_equal_to']	= 'Trường {field} phải nhỏ hơn hoặc bằng {param}.';
$lang['form_validation_greater_than']		= 'Trường {field} phải nhập số lớn hơn {param}.';
$lang['form_validation_greater_than_equal_to']	= 'Trường {field} phải lớn hơn hoặc bằng {param}.';
$lang['form_validation_error_message_not_set']	= 'Unable to access an error message corresponding to your field name {field}.';
$lang['form_validation_in_list']		= 'Trường {field} field must be one of: {param}.';

3.4 Hiện câu thông báo lỗi validation form bằng tiếng Việt

Trước khi validate các bạn khai báo thêm ngôn ngữ để Controller hiểu và lấy nội dung của file tiếng Việt:

$this->load->library(‘form_validation’); 

$this->config->set_item(‘language’, $this->current_lang); // $this->current_lang là biến ngôn ngữ = vi 
$this->form_validation->set_rules(‘product_pricae’, ‘Giá sản phẩm’, ‘required|greater_than[1]’); 

if( $this->form_validation->run() == FALSE){ 
    $errors = $this->form_validation->error_array(); 
    print_r($errors); 
}

Output lỗi nếu bạn nhập giá sản phẩm bằng 0.

// Trường Giá sản phẩm phải nhập số lớn hơn 1.

Tham khảo thêm trên Codigniter: https://codeigniter.com/userguide3/libraries/form_validation.html

Them khảo thêm trên Stackoverflow: https://stackoverflow.com/questions/9070227/translating-codeigniters-form-validation-error-messages

Chúc các bạn thành công

nhantam

Lập trình web app tại Panpic

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

93 − 85 =