search

Home  >  Q&A  >  body text

ThinkPHP中模型层的验证消息怎么怎么使用ajax返回呢??

namespace HomeModel;
use ThinkModel;
class UserModel extends Model{
protected $_validate = array( array('verify','require','验证码必须!'), //默认情况下用正则进行验证
array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一
array('value',array(1,2,3),'值的范围不正确!',2,'in'), // 当值不为空的时候判断是否在一个范围内
array('repassword','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致
array('password','checkPwd','密码格式不正确',0,'function'), // 自定义函数验证密码格式 );}

以上的验证消息怎么使用ajax返回??

阿神阿神2896 days ago329

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 17:40:02

    错误信息是可以通过getError()获取的;
    给个示例:

    model中定义验证:
    https://github.com/baijunyao/...
    第8行:定义的验证规则;

        // 自动验证
        protected $_validate=array(
            array('username','require','用户名必须',0,'',3), // 验证字段必填
        );

    controller中获取未通过验证的信息
    https://github.com/baijunyao/...
    第245行:获取的错误信息:

    $error_word=D('Users')->getError();

    那么得到未通过验证的错误消息后;是可以直接echo;
    然后ajax即可收到;

    echo $error_word;

    但是并不建议直接返回字符串;
    而是附带着错误码也返回了;

    $result=[
        'status_code'=>400,
        'message'=>$error_word;
    ]
    echo json_encode($result);

    reply
    0
  • Cancelreply