如何在CodeIgniter中只显示表单验证消息中的第二个参数



例如,我的语言表单验证文件中有这一行:

$lang['min_length'] = "%s must be at least %s characters in length.";

我希望输出是这样的:

$lang['min_length'] = "This field must be at least %s characters in length.";

然而,问题是,当得到回应时,它看起来是这样的:

此字段的长度必须至少为您的姓名字符

这是错误的,因为它使用第一个%s而不是第二个%s。

如何强制CI获取第二个%s?有可能吗?

由于min_length是表单验证库中的标准函数,并通过该库进行处理,因此只能通过更改核心库来实现。

但是有一种更简单的方法-使用回调函数和表单验证库:

$this->form_validation->set_rules('your_field', 'The Field label', 'callback_my_min_length[10]');

然后在您的控制器中,添加以下内容:

public function username_check($str, $min_length)
{
    if ( mb_strlen($str) >= $min_length)
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('my_min_length', 'This field must be at least '.$min_length.' characters in length.');
        return FALSE;
    }
}

我就是这么做的。

最新更新