ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
YurunPHP的Model提供自动获取数据并验证的方法。 首先需要在Model中定义`protected $rules` ~~~ protected $rules=array( 'reg'=>array( array('name'=>'username','type'=>array('require','length'=>array(1,5)),'msg'=>'请填写正确的用户名,长度在1-5之间。'), array('name'=>'password','type'=>'not_empty_str','msg'=>'密码不能为空'), array('name'=>'password2','type'=>'not_empty_str','msg'=>'密码不能为空'), array('name'=>'card_id'), array('name'=>'name','type'=>'not_empty_str','msg'=>'真实姓名不能为空'), array('name'=>'tel','type'=>'phone','msg'=>'请输入正确的联系电话'), array('name'=>'zone_id','type'=>'numeric','filter'=>'intval','msg'=>'请选择所在地区') ), 'login'=>array( array('name'=>'username','type'=>'not_empty_str','msg'=>'用户名不能为空'), array('name'=>'password','type'=>'not_empty_str','msg'=>'密码不能为空'), ), 'userInfo'=>array( array('name'=>'name','type'=>'not_empty_str','msg'=>'用户名不能为空'), array('name'=>'tel','type'=>'phone','msg'=>'请输入正确的联系电话'), array('name'=>'email'), array('name'=>'company'), ), 'changepassword'=>array( array('name'=>'password','type'=>'not_empty_str','msg'=>'不能为空'), array('name'=>'Rpassword','type'=>'not_empty_str','msg'=>'不能为空'), array('name'=>'old_password','type'=>'not_empty_str','msg'=>'不能为空'), ) ); ~~~ 上面定义了4组规则,分别是注册(reg)、登录(login)、编辑资料(userInfo)、修改密码(changepassword)。命名可以随开发者喜好命名。 规则可用字段: | 名称 | 描述 | 必填 | | -- | -- | -- | | name | 字段名称 | √ | | from | 从哪里取数据,默认为Request。可选值:get/post/cookie/server | | | type | 验证类型,支持字符串和数组。支持多个验证。留空则不验证 | | | filter | 过滤器,支持字符串和数组。在验证前会做过滤。 | | | default | 默认值。在验证失败时直接使用这个默认值。 | | | msg | 验证失败时的返回消息 | | 定义好规则后,我们就可以使用了。 格式: ~~~ fromForm(规则名[,是否获取全部错误信息]) ~~~ > fromForm方法执行成功返回true,执行失败返回一个数组。 使用方法: ~~~ $result = $model->fromForm('reg'); // 调用reg规则 $result = $model->fromForm('reg',false); // 调用reg规则,和上面等同 ~~~ 结果: ~~~ array (size=2) 'name' => string 'username' (length=8) 'msg' => string '请填写正确的用户名,长度在1-5之间。' (length=21) ~~~ 上面结果是验证失败时返回的结果,fromForm第二个参数不传或者为false时,只返回一个错误信息,也就是一维数组。 name对应的是字段名称,msg对应的是提示信息。 使用方法2: ~~~ $result = $model->fromForm('reg',true); ~~~ 结果: ~~~ array (size=5) 'username' => array (size=2) 'name' => string 'username' (length=8) 'msg' => string '请填写正确的用户名,长度在1-5之间。' (length=21) 'password2' => array (size=2) 'name' => string 'password2' (length=9) 'msg' => string '密码不能为空' (length=18) 'name' => array (size=2) 'name' => string 'name' (length=4) 'msg' => string '真实姓名不能为空' (length=24) 'tel' => array (size=2) 'name' => string 'tel' (length=3) 'msg' => string '请输入正确的联系电话' (length=30) 'zone_id' => array (size=2) 'name' => string 'zone_id' (length=7) 'msg' => string '请选择所在地区' (length=21) ~~~ 上面结果是验证失败时返回的结果,fromForm第二个参数为true时,返回所有验证失败的信息。 同样,name对应的是字段名称,msg对应的是提示信息。