栈 php 验证格式,表单验证 - 《Biny - 高性能轻量级PHP框架》 - 书栈网 · BookStack...
表单验证
框架提供了一套完整的表单验证解决方案,适用于绝大多数场景。
表单验证支持所有类型的验证以及自定义方法
简单示例:namespaceapp\form;
usebiny\lib\Form;
/**
* @property \app\service\testService $testService
* 自定义一个表单验证类型类 继承Form
*/
classtestFormextendsForm
{
// 定义表单参数,类型及默认值(可不写,默认null)
protected$_rules=[
// id必须为整型, 默认10
'id'=>[self::typeInt,10],
// name必须非空(包括null, 空字符串)
'name'=>[self::typeNonEmpty],
// 自定义验证方法(valid_testCmp)
'status'=>['testCmp']
];
// 自定义验证方法
publicfunctionvalid_testCmp()
{
// 和Action一样可以调用Service和DAO作为私有方法
if($this->testService->checkStatus($this->status)){
// 验证通过
return$this->correct();
}else{
// 验证失败,参数可以通过getError方法获取
return$this->error('非法类型');
}
}
}
定义完验证类,然后就可以在Action中使用了,可以通过getForm方法加载表单// 加载testForm
$form=$this->getForm('test');
// 验证表单字段,true/false
if(!$form->check()){
// 获取错误信息
$error=$form->getError();
return$this->error('参数错误');
}
// 获取对应字段
$status=$form->status;
// 获取全部字段 返回数组类型 ['id'=>1, 'name'=>'billge', 'status'=>2]
$data=$form->values();
注意:在$_rules中未定义的字段,无法在$form中被获取到,就算不需要验证,也最好定义一下
在很多情况下,表单参数并不是都完全相同的,系统支持Form复用,即可以在通用的Form类中自定义一些内容
比如,还是上述例子的testForm,有个类似的表单,但是多了一个字段type,而且对于status的验证方式也需要变化
可以在testForm中添加一个方法// 在testForm中添加
publicfunctionaddType()
{
// 添加type字段, 默认'default', 规则为非空
$this->_rules['type']=[self::typeNonEmpty,'default'];
// 修改status的判断条件,改为valid_typeCmp()方法验证,记得要写这个方法哦
$this->_rules['status'][0]='typeCmp';
}
然后在Action中加载表单也需要添加'addType'作为参数,其他使用方法一致$form=$this->getForm('test','addType');
一个表单验证类里可以写多个附加方法,相互直接并不会有任何影响
验证类型
系统提供了7种默认验证方式,验证失败时都会记录错误信息,用户可以通过getError方法获取
self::typeInt 数字类型,包括整型浮点型,负数
self::typeBool 判断是否为true/false
self::typeArray 判断是否为数组类型
self::typeObject 判断是否为对象数据
self::typeDate 判断是否为一个合法的日期
self::typeDatetime 判断是否为一个合法的日期时间
self::typeNonEmpty 判断是否非空(包括null, 空字符串)
self::typeRequired 有该参数即可,可以为空字符串
验证类型几乎涵盖了所有情况,如果有不能满足的类型,用户可以自定义验证方法,上述例子中已有,不再过多阐述
栈 php 验证格式,表单验证 - 《Biny - 高性能轻量级PHP框架》 - 书栈网 · BookStack...相关推荐
- ant-design-vue手机号格式表单验证(可以空但是非空就要符合格式)
ant-design-vue手机号格式表单验证(可以空但是非空就要符合格式) 需求: input组件代码 验证方法 调用验证方法验证 需求: 对表单中的一个input组件进行表单验证,该input非必 ...
- 表单验证-通用表单验证大全/通用表单验证函数收集
表单验证-通用表单验证大全/通用表单验证函数收集_Web设计论坛 文章来源:IT人才网(http://www.ad0.cn) Javascript表单验证函数大全: 复制内容到剪贴板代码: <s ...
- angularjs php登录验证,AngularJs表单验证的方法
Anjularjs表单验证 能够根据用户在表单中输入的内容给出实时视觉反馈是非常重要的.在人与人沟通的语境中,表单验证给出来的反馈同获得正确输入同等重要. 表单验证不仅能给用户提供有用的反馈,同时也能 ...
- ext form验证tip_FormValidator表单验证
表单校验测试 验证表单之文本输入框 用户名: 性别: 男女 出生年月: 身份证号 邮箱 学历 --请选择-- 专科 本科 研究生 硕士 博士 国家区号 -地区区号 -电话号码 -分机号码 兴趣爱好 乒 ...
- php form表单验证,Validform表单验证总结篇
近期项目里用到了表单的验证,选择了Validform_v5.3.2. 先来了解一下一些基本的参数: 通用表单验证方法: Demo:$(".demoform").Validform( ...
- python表单验证_python表单验证封装
在Web程序中往往包含大量的表单验证的工作,如:判断输入是否为空,是否符合规则. hello hostname: ip: port: phone: HTML #!/usr/bin/env python ...
- iview 表单 验证_iview 表单验证
北京市 上海市 深圳市 - 男 女 提交 重置 export default { data () { return { formValidate: { name: '', mail: '', city ...
- h5 php表单验证,H5表单验证失败该怎样提示
这次给大家带来H5表单验证失败该怎样提示,怎么用H5表单验证失败的提示?H5表单验证失败提示的注意事项有哪些,下面就是实战案例,一起来看一下. 我们知道,前端的童鞋在写页面时, 都不可避免的总会踩到 ...
- php ci提交表单验证,ci表单验证代码
概述 这是只考虑php对表单数据的接收处理.至于js部分以前会结合validate来讲解下 在解释 CodeIgniter 的数据验证处理之前,让我们先描述一下一般的情况: 一个表单显示了. 你填写并 ...
最新文章
- Oracle如何代码编辑,配置UltraEdit为Oracle PL/SQL代码编辑器
- 仓库处理中 无法修改_阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
- hive中存Array类型的数据的案例,将字符串的数组格式转成数组的字符串,自定义函数方式处理‘[12,23,23,34]‘字符串格式的数据为array<int>格式的数据。
- Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04 配置参考文献 ---- Wang Xiao Anhui University CVP
- ManageEngine保护您的浏览器
- CRMEB v4二开文档
- 上大学了,但学校一般,该怎么办?
- 【渝粤教育】电大中专新媒体营销实务 (6)作业 题库
- 工厂方法 Factory Method
- 4月电脑分辨率TOP10 :仅亚军1920*1080占比上涨
- c语言解析url编码,在C语言中如何实现对编码后的URL进行解码
- android矩阵计算器
- 华为云会议的前世今生
- 控制变量!控制变量!
- EasyExcel合并单元格策略样例
- 视频转换横竖屏、去色,视频剪辑
- 【BZOJ30472125】Freda的传呼机
- 【Shotcut】开源免费视频编辑软件 - 微信视频编辑利器
- 二叉排序树,平衡二叉树和哈夫曼树
- 渝粤题库 陕西师范大学 《旅游法规》作业
热门文章
- 使用云原生buildpacks将你的代码转换成Docker Image | 技术干货
- 漫画:如何实现大整数相乘?(下)
- Android自动化打包工具,利用Jenkins实现Android自动化打包
- RabbitMQ镜像策略set_policy
- Vue优化策略_项目上线_02
- Flowable springboot项目自定义中文字体
- gblfy博客配色模板
- button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
- 实现mvcc_MySQL 的多版本并发控制(MVCC) 是干啥的?
- android 语音编码,android – 如何将录制的语音编码为ogg vorbis?