validate怎么验证唯一啊

浏览:1205 发布日期:2019/03/07 分类:ThinkPHP5专区
模型部分代码    protected $name = 'users';
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
验证器部分代码:    protected $rule = [
        'userid'  =>  'require|max:15',
    'userid'   => 'unique:userid',
    ];
    
    protected $message = [
        'userid.require'  =>  '用户名id必须',
        'userid.unique' =>  '用户名已经存在',
    'userid.max' =>  '用户名长度过长',
    ];
我是想在插入数据前,判断userid是否存在.


控制器$User = new users;

$User->data(['userid'=>'555']);  //数据库已经存在

 $validate = \think\Loader::validate('addons\testuser\validate\users');


if($validate->check($User)){ 
   $db= $User->save();  
   if($db){
    return $this->success('添加成功!');
   }else{
    return $this->error('添加失败!');
   }
   }else{
return $this->error($validate->getError());
}
就报错
localhost.tp_userid' doesn't exist
但是验证长度,验证require都能达到预期

实际上tp_userid表本身就不存在.我在users的模型中已经指定的表名为fa_users
不知道为验证唯一的话,为啥访问一个不存在的数据库?


请问下我是哪里弄错了
最佳答案
评论( 相关
后面还有条评论,点击查看>>