1

根据文档,设置错误消息时 %s 将被替换为字段名称。

如果您在错误字符串中包含 %s,它将被您在设置规则时用于字段的“人类”名称替换。

有没有办法在字符串中有多个 %s 并以不同的方式定义它们?

4

1 回答 1

0

是表单验证库中创建错误消息的行:

// 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

于 2012-11-10T03:47:18.020 回答