【问题标题】:CodeIgniter custom validation errors for each rule per each field每个字段的每个规则的 CodeIgniter 自定义验证错误
【发布时间】:2013-03-18 11:19:06
【问题描述】:

我正在使用 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 中,一条规则只定义了一条错误消息。那么如何覆盖那个并请提出一些解决方案来获得特定领域的不同错误。工作更受赞赏。

【问题讨论】:

    标签: codeigniter validation codeigniter-2 custom-errors


    【解决方案1】:

    尝试使用 CI 功能:

       set_message();
    

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

       language/english/form_validation_lang.php
    

    要设置您自己的自定义消息,您可以编辑该文件,或使用以下函数:

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

    更多关于set_message here

    希望对你有所帮助;

    【讨论】:

    • 特别是对于 OP 的问题,他可以使用$this->form_validation->set_message('required','%s cannot be empty');
    • 我们可以将文件system/language/english/form_validation_lang.php(系统的语言文件夹)复制到application/language/english/form_validation_lang.php(应用程序的语言文件夹)并进行我们想要的任何自定义
    【解决方案2】:

    我最近为我的 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 这样的基本模型。在您的模型中,您可以执行以下操作:

    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 中尝试过,但希望这会奏效。也许需要做一些小的调整。

    【讨论】:

    • 对于那些好奇的人来说,这在 2.x CI 安装中不起作用。看起来他们改变了核心库(添加了一些额外的方法并改变了错误消息的构建方式)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2020-07-02
    • 2018-05-05
    相关资源
    最近更新 更多