![](/img/trans.png)
[英]Custom error message using CodeIgniter and Pregmatch Form Validation
[英]Custom error message using CodeIgniter Form Validation
我想在我的 CodeIgniter forms 中制作一些自定義錯誤消息。我試過使用
$this->form_validation->set_message('is_unique[users.username]', 'The username is already taken');
但是我無法讓它工作。
編輯form_validation_lang.php
文件還不夠好,因為is_unique
將The username is already taken for usernames, and The e-mail is already registered for mails.
如何制作此自定義錯誤消息?
這是我的代碼片段:
$this->form_validation->set_message('is_unique[users.username]', 'The username is already taken');
// Check if username has changed
if ($this->input->post('username') !== $user->username) {
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]|max_length[20]|is_unique[users.username]');
}
正確的方法是傳遞字符串格式
$this->form_validation->set_message('is_unique', 'The %s is already taken');
那么,只有我們能夠獲得"This Username is already taken"
或"This Email is already taken"
。
這對我有用
$this->form_validation->set_message('is_unique', 'The username is already taken');
你最好這樣使用:
$this->form_validation->set_message('is_unique', 'The %s is already taken');
form_validation使用為該字段設置的標簽更改%s
。
希望這可以幫助!
這是您僅為用戶名設置消息錯誤的方法:
$this->form_validation->set_rules('username','Username','is_unique',array('is_unique' => 'The %s is already taken'));
您可以在使用$this->form_validation->run() == true
檢查驗證后將自定義消息添加到validation_errors()
字符串
if(YOUR_CONDITION){
$this->form_validation->run();
$err = validation_errors();
$err = $err. '<p>Custom validation error message</p>'. PHP_EOL;
$data['err'] = $err;
$this->load->view('viewname', $data);
}
else if ($this->form_validation->run() == true ) {
#code...
}
else..
將自定義消息設置為$err
變量后,將其打印在視圖上。
create a **form_validation.php** file and use this method:
"add_user_rule" => [
[
"field" => "username",
"label" => "Username",
"rules" => "required|trim|is_unique[users.username]",
"errors" => [
'is_unique' => 'The %s is already taken.',
],
],
],
Thank You
您可以傳遞第三個參數來設置驗證消息
$this->form_validation->set_rules(
'username', 'Username',
'required|min_length[5]|max_length[12]|is_unique[users.username]',
array(
'required' => 'You have not provided %s.',
'is_unique' => 'This %s already exists.'
)
);
您需要參考字段的名稱而不是規則。
這些文檔略顯混亂,因為它們也將其命名為“必需”。
那么你有$this->form_validation->set_message('is_unique[users.username]', 'The username is already taken');
它應該是
$this->form_validation->set_message('username', 'The username is already taken');
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.