簡體   English   中英

使用 CodeIgniter 表單驗證的自定義錯誤消息

[英]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_uniqueThe 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM