在thinkphp自动验证中   当我验证出错一切正常  但当我验证成功返回的是emptypublic function register(){
if($_GET && !empty($_GET)){
$Admin = D('Admin');



if($Admin->create($_GET,1)===false){
return show(0,$Admin->getError());
}else{

$result = $Admin->registerByPost();
if(!$result){
return show(0,'数据操作失败');
}
return show(1,'成功',array('admin_id'=>$result));

}
}
else{
//$result=D('Admin')->registerByPost();
//var_dump($result);
return show(0,'参数错误');
}
}
         
                于是我做了对false的判断   所有验证一切正常 
                但是   当我验证unique时
               protected $_validate = array(
      array('admin_number','6,16','账号长度超出限制',1,'length'), // 在新增的时候验证name字段长
      //array('admin_number','','帐号名称已经存在!',0,'unique'),
      array('admin_password','checkPwd','密码格式不正确',1,'function'), // 自定义函数验证密码格式
      array('admin_name','2,16','名字长度超出限制',0,'length'),
      array('admin_age',array(1,100),'你是妖怪吗',0,'between'),
      array('admin_sex',array(0,1),'你是人妖吗',0,'in'),
    );
     会报一个错误  
   求解啊  改了2天了 没弄懂

解决方案 »

  1.   

    对不起  原因找到了    protected $_db = '';
    protected $_validate = array(
          array('admin_number','6,16','账号长度超出限制',1,'length'), // 在新增的时候验证name字段长
          array('admin_number','','帐号名称已经存在!',0,'unique'),
          array('admin_password','checkPwd','密码格式不正确',1,'function'), // 自定义函数验证密码格式
          array('admin_name','2,16','名字长度超出限制',0,'length'),
          array('admin_age',array(1,100),'你是妖怪吗',0,'between'),
          array('admin_sex',array(0,1),'你是人妖吗',0,'in'),
        ); public function __construct(){
    $this->_db = M('Admin');

    }
    这里定义在子类AdminModel 中定义了$_db ,覆盖了父类Model中的$_db  ,并且没有调用父类的构造方法 
    在定义model类时  应该多做注意  详情见http://www.kancloud.cn/manual/thinkphp/1728
    其实也没有必要实力话Admin类  如果跟数据库一致的话  会自动实例化