Php 一个用于多个输入的验证函数

Php 一个用于多个输入的验证函数,php,codeigniter,validation,Php,Codeigniter,Validation,我正在使用CodeIgniter的表单验证回调函数,如下所示: function _validate_rate($input, $field) { if ( !in_array($field, array("water", "earth", "fire")) ) { return FALSE; } $min = (int) $this->input->post($field . '_max'); if ( $min >

我正在使用CodeIgniter的表单验证回调函数,如下所示:

function _validate_rate($input, $field)
{

    if ( !in_array($field, array("water", "earth", "fire")) )
    {
        return FALSE;
    }

    $min = (int) $this->input->post($field . '_max');
    if ( $min > 0 AND $min < $input )
    {
        $this->form_validation->set_message($field . '_min', sprintf($this->lang->line('dev_s_invalid_rate'), strtolower($field)));
        return FALSE;
    }
    return TRUE;
}
当我想用以下语句显示表单验证错误消息时,出现问题:

$this->form_validation->set_message($field . '_min', sprintf($this->lang->line('dev_s_invalid_rate'), strtolower($field)));
(在回调函数中)

因此:它应该设置一条与
$字段
数据对应的错误消息,因此当
$字段
时,它应该为
水_min
设置一条错误消息(因为这是验证规则字段名)。。但我收到了以下信息:

无法访问与字段名对应的错误消息。

我为三个字段创建了一个回调函数,只是为了防止重复相同外观的函数,这些函数必须检查/工作相同。。。不幸的是,无法访问与每个输入对应的错误。

更改

$this->form_validation->set_message($field . '_min', sprintf($this->lang->line('dev_s_invalid_rate'), strtolower($field)));

错误消息对应的是函数,而不是字段。这样,您的函数就可以通用于多个字段。在错误消息中,您可以写:

'The %s field is not correct'
并将字段名插入到%s更改中

$this->form_validation->set_message($field . '_min', sprintf($this->lang->line('dev_s_invalid_rate'), strtolower($field)));

错误消息对应的是函数,而不是字段。这样,您的函数就可以通用于多个字段。在错误消息中,您可以写:

'The %s field is not correct'
并将字段名插入到%s中