Php jQuery.validator.addMethod在CodeIgniter中始终返回true

Php jQuery.validator.addMethod在CodeIgniter中始终返回true,php,codeigniter,jquery,jquery-validate,Php,Codeigniter,Jquery,Jquery Validate,我试图验证用户是否已经存在。用户名的错误输出总是“此用户名已被使用” jQuery验证: 除uniqueUsername外,所有验证错误均有效(必填、minlength、maxlength、lettersonly均正常) models/users.php 此函数获取数组并检查此用户名是否已存在于我的数据库中,如果已存在->true,否则->false public function is_user_username($user) { $this -> db -> where(

我试图验证用户是否已经存在。用户名的错误输出总是“此用户名已被使用”

jQuery验证:
除uniqueUsername外,所有验证错误均有效(必填、minlength、maxlength、lettersonly均正常)

models/users.php
此函数获取数组并检查此用户名是否已存在于我的数据库中,如果已存在->true,否则->false

public function is_user_username($user) {
    $this -> db -> where('username', $user['username']);
    $query = $this -> db -> get('users');
    if ($query -> num_rows() == 1) {
        return true;
    } else {
        return false;
    }
}
Quote OP
models/users.php
-此函数获取数组并检查此用户名是否已存在于我的数据库中,如果已存在->true,否则->false。”

因此,
uniqueUsername
方法的逻辑是反向的:

success : function(msg) {
    if (msg == 'true') { // <-- if username exists
        return true;     // <-- this means 'passed- no error'
    } else {
        return false;    // <-- since you did not get a match, it shows error
    }
}

为什么不使用远程方法呢?这里有几个例子

这样,您就不必编写自己的方法,只需像这样指定规则即可。您的check_用户页面将被传递用户名字段的内容,并且应该只返回单词true或false

rules : {
 username : {
  required : true,
  minlength : 3,
  maxlength : 25,
  lettersonly : true,
  remote: "<?php echo base_url();?>user/check_user"
 },
},
规则:{
用户名:{
要求:正确,
最小长度:3,
最大长度:25,
信一:没错,
远程:“用户/检查用户”
},
},
success : function(msg) {
    if (msg == 'true') { // <-- if username exists
        return true;     // <-- this means 'passed- no error'
    } else {
        return false;    // <-- since you did not get a match, it shows error
    }
}
success : function(msg) {
    if (msg == 'true') { // <-- if username exists
        return false;    // <-- this means 'failed- show message'  
    } else {
        return true;     // <-- this means 'passed- no error'
    }
}
rules : {
 username : {
  required : true,
  minlength : 3,
  maxlength : 25,
  lettersonly : true,
  remote: "<?php echo base_url();?>user/check_user"
 },
},