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对应的是提示信息。
- 序言
- 有些话想说
- 基础入门
- 简介
- 下载YurunPHP
- 运行环境
- 开发规范
- 目录结构
- 模块
- 控制器
- 项目配置
- 入口文件
- 项目目录结构
- 配置文件
- 框架编译
- 项目部署
- 控制器
- 创建控制器
- 加载模版显示页面
- AJAX返回数据
- 模型
- 创建模型
- 实例化模型
- 数据管理
- 连贯操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 连贯操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合计函数
- save
- 执行SQL语句
- 创建数据并验证
- 字段映射
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 数据库操作
- 配置文件
- 常用操作
- 查询记录
- 存储过程
- 数据库函数
- MSSQL
- 视图
- 调用视图
- 给视图传值
- 模版引擎
- 输出
- 使用PHP代码
- 模版标签
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- 模版常量替换
- 自定义控件
- 通用属性用法
- 数据集绑定
- 下拉框(select)
- 单选框(radio)
- 单选框组(radiogroup)
- 选择框(checkbox)
- 选择框组(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分页条(pagebar)
- 数据验证
- 验证方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定义分层
- 缓存
- 文件缓存
- 配置
- PHP数组配置
- 过滤域名
- 日志
- 文件日志
- 事件&插件机制
- 框架事件列表
- 多语言支持
- 定时任务
- API接口开发