无法使用语言类在Codeigniter 3中的form_validation.php中设置自定义消息

时间:2017-10-18 19:24:59

标签: php codeigniter

我最近在我的项目中开始使用Codeignite 3,我遇到了使用语言课的问题。

这里是我项目中的3个文件。

  1. /config/form_validation.php
  2. /controllers/login_controller.php
  3. /language/english/form_validation_lang.php
  4. login_controller.php

    if ($this->form_validation->run() == FALSE) {
        ... do something
    }
    

    form_validation_lang.php

    $lang['password_required'] = 'Please insert a password.';
    

    form_validation.php

    $config = array(
        array(
                'field' => 'username',
                'label' => 'Username',
                'rules' => 'required'
        ),
        array(
                'field' => 'password',
                'label' => 'Password',
                'rules' => 'required',
                'errors' => array(
                        'required' => 'lang:password_required',
                ),
        )
    );
    

    lang:password_required之外的视图中显示所有默认错误消息。如何在errors参数中使用语言类(它适用于标签)?

    非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效(未经测试):

$CI =& get_instance();
$CI->lang->load('form_validation', 'english');

$config = array(
    array(
            'field' => 'username',
            'label' => 'Username',
            'rules' => 'required'
    ),
    array(
            'field' => 'password',
            'label' => 'Password',
            'rules' => 'required',
            'errors' => array(
                    'required' => $CI->lang->line('password_required'),
            ),
    )
);