如何使用CodeIgniter';验证匹配类型;s Form Validation类


How can I validate a matches type using CodeIgniter's Form Validation class?

如何验证用户提供的电子邮件,并且必须在数据库表字段电子邮件中进行检查。。那么我该怎么做呢?回叫功能不起作用,有什么建议吗?

我已经这样做了,但没有工作:

$this->form_validation->set_rules('email','Email','trim|required|xss_clean|valid_email|matches[mod_register.email]');

这里mod_register是表名,电子邮件是字段。

只匹配另一个表单字段而不是数据库字段的检查,请参阅:http://www.codeigniter.com/user_guide/libraries/form_validation.html#rule-参考

您可以使用回电:

$this->form_validation->set_rules('email','Email','trim|required|xss_clean|valid_email|callback_check_email');

然后在您的控制器中,添加以下功能:

/**
 * validation function for checking email exists in database
 * @param  string $email
 * @return bool
 */
public function check_email($email = NULL) {
    // if no email specified, skip
    if (empty($email)) {
        return TRUE;
    }
    // build query to check if email exists in database
    $where = array(
        'email' => $email
    );
    // run query
    $query = $this->db->get_where('mod_register', $where, 1);
    // check results
    if ($query->num_rows() == 1) {
        // matches
        return TRUE;
    }
    // no matches
    return FALSE;
}

请参阅:http://www.codeigniter.com/user_guide/libraries/form_validation.html#callbacks-您自己的验证方法