频道栏目
首页 > 资讯 > ThinkPHP > 正文

thinkphp之3.1版本自动验证

16-01-06        来源:[db:作者]  
收藏   我要投稿

新版本出来之后,也可以在 controller里面验证,需要指定两个变量一个是 $validate $auto 里面指定的规则和 model中一样。

之前用把自动验证放在model里面总是有问题,先D实例化model类。

注意:只有先 $user->auto($auto)->validate($validate)->create()生成对象,这样才支持自动验证.

然后date数组要保留,因为像我做的这个注册,如果不用date单独从post数组中抽出来。

user->add();是不成功的,他默认是post的数据,有了date数组,应该添加的是date数组,放在controller里面一切正常上代码:

  1. $user=D('User'); $data['username']=$_POST['username'];
  2. $data['password']=$_POST['password']; $data['email']=$_POST['email'];
  3. $validate=array( array('username','require','用户名不能为空',1),
  4. array('username','','用户名已经存在',1,'unique',1), array('confirm_password','password','确认密码不正确',0,'confirm'),
  5. ); $auto=array(
  6. array('password','md5',1,'function'), array('reg_time','time',1,'function'),
  7. ); if($user->auto($auto)->validate($validate)->create())
  8. {
  9. $user->add(); echo$user->getLastSql();exit;
  10. } else
  11. { $this->error($user->getError());
  12. }

ajax验证,thinkphp中$.post方式验证用户名存在还是不存在,实例代码如下:

$.post('/Article/checks',{'username':s,'aa':'bb'},function(data){

alert(data.data.info);

});

php代码如下:

  1. $user=D('User'); if($user->getByUsername($_POST['username']))
  2. { //info
  3. //$this->success('已经存在用户名','1111'); $this->ajaxReturn(array('info'=>'cunzai','sss'=>'dddd'),"已经存在!",1);
  4. //这里用success方法和ajaxReturn有很大的区别。ajaxReturn里面可以返回自定义设置。success方式固定返回的参数
  5. } else
  6. { $this->error('不存在用户名');
  7. }
相关TAG标签
上一篇:PHP根据IP自动跳转到不同地区页面
下一篇:Yii框架中如何清除CPortlet自带的div及class属性
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站