根据文档,设置错误消息时 %s 将被替换为字段名称。
如果您在错误字符串中包含 %s,它将被您在设置规则时用于字段的“人类”名称替换。
有没有办法在字符串中有多个 %s 并以不同的方式定义它们?
这是表单验证库中创建错误消息的行:
// Build the error message
$message = sprintf($line, $this->_translate_fieldname($row['label']), $param);
$line
: 错误信息模板,例如“% 字段无效”$this->_translate_fieldname($row['label'])
: 字段的标签$param
: 参数通过了验证函数,如果有的话,max_length[5]
会传“5”这就是表单验证类为您所做的范围。如果您需要更大的灵活性,则必须自己准备错误消息 <- 可能在已经填充了额外变量的情况下事先有用。
通过扩展表单验证类core/MY_form_validation.php
并在其中工作可能会很有趣。不幸的是,这一行包含在非常大且混乱的主函数_execute
中,从现在来看,您需要重载一些其他函数好。我开始写一个例子,但它实际上看起来像是一件苦差事。你可能会更好地使用:
$this->form_validation->set_message('rule_name', 'Your custom message here');
有关设置错误消息的更多信息:http: //ellislab.com/codeigniter/user_guide/libraries/form_validation.html#settingerrors