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对应的是提示信息。



