每个字段的每个规则的CodeIgniter自定义验证错误

时间:2013-03-18 11:19:06

标签: codeigniter validation codeigniter-2 custom-errors

我正在使用CodeIngiter 2.1,我想为每个字段的每个规则定义自定义验证错误。字段如下。

array(
'field' => 'firstname',
'rules' => 'required',
    'error' => 'This field cannot be empty.'
),
array(
'field' => 'email',
'rules' => 'required',
    'error' => 'The email cannot be empty.'
)

但是在CodeIgniter中,只为一个规则定义了一条错误消息。那么如何覆盖那个并且请建议一些解决方案来获取特定字段的不同错误。这项工作更受赞赏。

2 个答案:

答案 0 :(得分:1)

尝试使用CI功能:

   set_message();

所有本机错误消息都位于以下语言文件中:

   language/english/form_validation_lang.php

要设置自己的自定义消息,您可以编辑该文件,也可以使用以下功能:

   $this->form_validation->set_message('rule', 'Error Message');

了解有关set_message here

的更多信息

希望它会有所帮助;

答案 1 :(得分:1)

我最近为我的codeigniter 3.0-dev应用程序制作了这个自定义错误消息选项。希望这可以帮助那里的任何人。

https://gist.github.com/abdmaster/7287962

使用它(例子),

$this->form_validation->set_rules('name','Name','required|alpha',array('required' => 'Please fill the field %s .');`

它可以与像jamierumbelow的MY_Model这样的Base模型一起使用。在您的模型中,您可以执行以下操作:

public $validate = array(
  'display_name'  => array(
    'field' => 'display_name',
    'label' => 'Display Name',
    'rules' => 'trim|required|xss_clean|valid_fullname|is_unique[users_model.display_name]',
    'error_msg' => array(
      'is_unique'  => 'The name in %s is already being used by someone.',
    ),
  ),
);

休息是我们正常使用的方式。希望这些例子足够。

我没有尝试过v2.1.x,但希望这会有用。也许必须做一些小的调整。