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

时间:2012-09-13 19:10:02

标签: codeigniter

E.g。我在我的语言form_validation文件中有这一行:

$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?有可能吗?

1 个答案:

答案 0 :(得分:0)

由于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;
    }
}

我就是这样做的。