php字段验证规则,ThinkPHP 自动验证及验证规则详解

2023-10-29

ThinkPHP 自动验证及验证规则详解

ThinkPHP 自动验证

ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证。自动验证是基于数据对象的,而大多情况下数据对象是基于

$_POST表单 (不是绝对的)创建的。

基本的自动验证功能包括:必须字段、email邮箱格式、唯一性、URL地址、数字、两个字段是否相同、是否等于某个值等。

要使用系统的自动验证功能,只需要在对应的 Model类 里面定义 $_validate

属性(由多个验证因子组成的数组),语法如下:

protected $_validate = array(

array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])

};

ThinkPHP自动验证格式说明:

验证因子

说明

验证字段

必须。需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如验证码等。

验证规则

必须。要进行验证的规则,需要联合附加规则一起使用。

错误提示

必须。当验证不通过时的提示信息。

验证条件

可选。包括:

Model::EXISTS_TO_VAILIDATE 或者 0 :存在字段就验证(默认)

Model::MUST_TO_VALIDATE 或者 1 :必须验证

Model::VALUE_TO_VAILIDATE 或者 2 :值不为空的时候验证

附加规则

可选。配合验证规则使用,包括:

regex:使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认)

unique:验证唯一性,系统会根据字段目前的值查询数据库来判断是否存在相同的值

confirm:验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名

equal:验证是否等于某个值,该值由前面的验证规则定义

in:验证是否在某个范围内,前面定义的验证规则必须是一个数组

function:使用函数验证,表示前面定义的验证规则是一个函数名

callback:使用方法验证,前面定义的验证规则是当前 Model 类的一个方法

验证时间

可选。包括:

Model:: MODEL_INSERT 或者 1 :新增数据时候验证

Model:: MODEL_UPDATE 或者 2 :编辑数据时候验证

Model:: MODEL_BOTH 或者 3 :全部情况下验证(默认)

自动验证例子

下面的例子验证文章标题必须填写且检测标题是否已存在:

class ArticleMod

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php字段验证规则,ThinkPHP 自动验证及验证规则详解 的相关文章

  • 基于遗传算法求解旅行商问题

    基于遗传算法求解旅行商问题 旅行商问题 Traveling Salesman Problem 简称TSP 是一个经典的组合优化问题 其目标是找到一条最短路径 使得一个旅行商可以经过所有给定的城市并回到起始城市 同时每个城市只能经过一次 由于
  • element ui dropdown下拉 复选框+全选+搜索功能 组件 (开箱即食)

    element ui dropdown下拉 复选框 全选 搜索功能 组件 开箱即食 可以传入默认值默认选中 可以全选 可以搜索 点击确定把选中的值传给父级 开箱即食
  • ​​Android平台GB28181历史视音频文件下载规范探讨及技术实现

    技术背景 上篇blog 我们提到了 Android平台GB28181历史视音频文件检索规范探讨及技术实现 文件检索后 GB28181平台侧 可以针对文件列表进行回放或下载操作 本文主要探讨视音频文件下载相关 规范解读 视音频文件下载基本要求
  • MMsegmentation教程 5: 训练技巧

    MMSegmentation 支持如下训练技巧 主干网络和解码头组件使用不同的学习率 Learning Rate LR 在语义分割里 一些方法会让解码头组件的学习率大于主干网络的学习率 这样可以获得更好的表现或更快的收敛 在 MMSegme
  • TypeError: decoding str is not supported

    问题描述 这里我是要读取 edf文件 常规的文本阅读器是没法正常查看该文件格式的 比如记事本打开存在乱码 这里是解析的时候出现了问题 查询各种正则化表达式 x14 没有任何问题的 报错一直指向这一句 尝试修改都无疾而终 unicode an
  • opencv-腐蚀erode()

    功能 腐蚀是对白色部分 高亮部分 而言的 腐蚀就是原图中的高亮部分被腐蚀 领域被蚕食 效果图拥有比原图更小的高亮区域 腐蚀就是一个平移的结果匀速包含在 原图中的所有点的集合 原型 void cv erode InputArray src O
  • Mac下安装rocketMQ

    一 前提是电脑上已经安装了JDK 没有安装的参照 https jingyan baidu com article 908080221f3cfefd91c80fbf html 二 RocketMQ的下载与安装 下载 官网地址 http roc
  • 利用windows服务器自带的IIS搭建网站并发布公网访问【内网穿透】

    文章目录 1 前言 2 Windows网页设置 2 1 Windows IIS功能设置 2 2 IIS网页访问测试 3 Cpolar内网穿透 3 1 下载安装Cpolar 3 2 Cpolar云端设置 3 3 Cpolar本地设置 4 公网
  • Ocaml 对偶、元组

    1 对偶 元组 Ocaml语言中 构造乘积类型的操作符是 类型A和类型B的乘积类型记 A B 构造乘积类型的元素的操作符是逗号 如果a属于类型A b属于类型B 那么 a b 属于类型A B 二元乘积类型的元素称为对偶 多元乘积类型中的元素称
  • 浅谈C++函数重载

    C 相较于C语言来说 重载是一重大特性 让我们一起简单的回顾一下重载那些事 传送门 函数重载是什么 为什么有函数重载 函数重载是如何实现的 总结 函数重载是什么 函数重载 是函数的一种特殊情况 C 允许在同一作用域中声明几个功能相似的同名函
  • uniapp中图片宽度100%,高度自适应

    uniapp中图片宽度100 高度自适应
  • EditText限制只能输入汉字字母和空格

    这是第一次使用正则表达式来实现输入框限制输入类型 场景是项目中个人信息模块中的姓名字段只能要求输入这些类型 之前只是用其他的方式实现过其他类型的限制输入 这次想到这个方法边让同事帮忙写了个正则 对于正则我可真是心有余而力不足 希望能够帮到大
  • Ajax简介

    目录 Ajax简介 Ajax特点 基础语法 数据编码格式 form表单中 Ajax中 ajax携带数据 回调函数 序列化 响应状态码 Ajax简介 AJAX 全称Asynchronous JavaScript And XML 即异步JS和X
  • react hooks组件间的传值方式(使用ts),子孙传值给祖先组件

    父子组件传值 参考 react hooks组件传值 父传子很简单 只要父组件传参 子组件写好interface childProps和props去接收即可 子传父稍复杂 父组件写一个回调函数 changeTaskState id any g
  • AIGC,驱动架构与业务的新动力

    本期CCF TF第117期 AIGC 驱动架构与业务的新动力 活动由CCF TF架构SIG承办 新浪协办 邀请到了科大讯飞 阿里云 去哪儿网 新浪微博等多位互联网技术专家 共同分享交流如何通过应用AIGC技术 驱动架构和业务高效发展 为工程
  • 【满分】【华为OD机试真题2023 JS】数字加减游戏

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 数字加减游戏 知识点广搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 小明在玩一个数字加减游戏 只使用加法或者减法 将一个数字s变成数字t 每个回合 小明可以
  • 修复VMware网络连接失败及设置固定IP

    最近被这个网络折磨疯了 记录一下怎么修复虚拟机网路连接 VM软件安装好后 就有10个网络连接类型可供选择 分别是 VMnet0 VMnet1 VMnet2 VMnet3 VMnet4 VMnet5 VMnet6 VMnet7 VMnet8
  • 数据库操作:汇总数据(聚集函数)

    我们经常需要汇总数据而不用把它们实际检索出来 为此MySQL提供了专门的函数 聚集函数运行在行组上 计算和返回单个值的函数 SQL聚集函数 1 AVG 返回某列的平均值 2 COUNT 返回某列的行数 3 MAX 返回某列的最大值 4 MI
  • java数组及数组函数

    数组求和 1 System out println 1 2 3 4 5 getSum 1 2 3 4 5 5个参数 public static int getSum int numbers 可变长形参 本质为数组 int sum 0 for

随机推荐

  • 服务器系统要用GUID还是MBR,分享win10分区格式MBR和GUID有什么区别 教你区分MBR和GUID格式...

    今天IT天空小编要给大家分享下最新的教程 电脑装win10系统需要选择正确的分区格式 这样电脑才能保持正常运转 如果格式安装错误 电脑就没办法继续运行了 一般情况下 win10分区格式MBR和GUID两种选择 那么这两者有何区别 电脑小白肯
  • 华为ensp,实战案例一一使用模拟器构建局域网络

    1 案例目标 I 通过组网设计 掌握小型网络的组建 路由的设计 对小型网络系统进行分析 提出建网解决方案 2 综合运用路由 VLAN的相关技术 3 综合运用VLAN创建 Access和Trunk接口配置 VLAN间路由配置 DHCP 也址池
  • 民族代码设计

    民族代码和对应民族名称 在开发时 设计民族的数据字典 民族代码 民族名称 01 汉族 01 汉族 02 蒙古族 03 回族 04 藏族 05 维吾尔族 06 苗族 07 彝族 08 壮族 09 布依族 10 朝鲜族 11 满族 12 侗族
  • 基于遗传算法的BP神经网络优化算法(matlab实现)

    1 理论基础 1 1 BP神经网络概述 BP网络是一类多层的前馈神经网络 它的名字源于在网络训练的过程中 调整网络的权值的算法是误差的反向传播的学习算法 即为BP学习算法 BP算法是Rumelhart等人在1986年提出来的 由于它的结构简
  • Scanner 类

    目录 1 什么是Scanner类 2 创建Scanner类的基本语法 3 使用next方法 4 使用nextLine方法 5 next 与nextLine 6 数据类型的接收方式 7 Scanner类知识扩展 8 今日箴言 1 什么是Sca
  • JAVA代码规范

    一 MyBatis 不要为了多个查询条件而写 1 1 二 迭代entrySet 获取Map 的key 和value 三 使用Collection isEmpty 检测空 四 初始化集合时尽量指定其大小 五 若需频繁调用Collection
  • C++之I/0流操作(标准流、文件流、二进制操作等)

    目录 标准输入输出 文本文件输入输出 文件类型 文件打开方式 写文件 读文件 二进制文本输入输出 写文件 读文件 字符串输入输出 往流里面输出 从流里面读出 格式控制 流 stream 为C 的输入输出操作提供了许多的便利 通常我们使用的流
  • Django(9)-表单处理

    django支持使用类创建表单实例 polls forms py from django import forms class NameForm forms Form your name forms CharField label Your
  • 面试准备:Mybatis常见面试题汇总

    文章目录 1 和 的区别是什么 2 当实体类中的属性名和表中的字段名不一样 怎么办 3 模糊查询like语句该怎么写 4 Mybatis 一对一 一对多的xml怎么写 5 Dao 接口的工作原理是什么 Dao 接口里的方法 参数不同时 方法
  • Python中函数,类,模块,包,库的区别

    文章目录 关系图 参考文章 关系图 参考文章 借鉴了以下文章 Python中函数 类 模块 包 库的区别 一分钟带你分清Python的模块 包和库的区别 python中的模块 库 包有什么区别
  • c# 保存软件配置

    保存配置方法 一 Settings setting 文件 1 1 配置Settings settings文件 1 2 加载配置信息 1 3 保存配置信息 二 使用文本保存 2 1 引入命名空间 2 2 新增IniConfigHelper 类
  • 装win10提示“在EFI系统上,Windows只能安装到GPT磁盘”

    在安装界面 按 shift F10 键 在命令提示符窗口依次执行如下命令 输入 diskpart 命令后 按enter键 进入到 DISKPART 模式 输入 list disk 命令后 按enter键 查看电脑的硬盘 编号0 表示电脑的第
  • 【python文本分析】——基于股评文本的情绪分析

    目录 一 文本处理 1 精确模式 默认 2 全模式 3 搜索引擎模式 二 词云图 1 wordcloud模块导入 2 词云图实现 三 实例 利用股评进行情绪分析 1 数据来源及snownlp模块导入 2 代码实现 2 1 读取股评文件 2
  • windows 10 安装子系统(WSL2)

    以前在学习docker时 是在自己的虚拟机上进行的 最近刚换了电脑 想在windows中使用子系统来运行docker 现在WSL2要比以前的WSL1运行更快 io操作方面的很大的提升 在这里记录一下我的安装过程吧 希望小白们有些参考 关注微
  • 【使用mindspore复现segmenter语义分割算法时,loss一直在一个范围内附近波动,降不下去】

    使用mindspore复现segmenter语义分割算法 操作步骤 问题现象 1 即使训练了很多个epoch 精度一直下降不了 一直在1 2左右 测试出来的miou也是一个非常低的值 例如0 0198 2 目前尝试过不同的优化器SGD AD
  • 腾讯mini项目-【指标监控服务重构】2023-07-27

    今日已办 SigNoz Log Management SigNoz原生支持 OpenTelemetry 来收集日志 SigNoz 在收集器端进行了优化 为SigNoz中的日志添加了不同的功能 OpenTelemetry 提供了各种接收器和处
  • 合并两个有序数组

    给定两个有序整数数组 nums1 和 nums2 将 nums2 合并到 nums1 中 使得 num1 成为一个有序数组 说明 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nums1 有足够的空间 空间大
  • es6 class类与class类中constructor

    序言 在es6 中的class关键字用于声明类 在此之前js一直没有类的概念 本文只要讨论class的与es5中对象的关系以及class中constructor的作用 关键字class ES6 的class可以看作只是一个语法糖 而类本身可
  • Android颜色透明度十六进制表示法

    Android开发中经常会用到色值的透明度 比如要70 透明或者30 透明 这时候就有点犯难了 要么Google 要么借助PS等工具 其实都比较麻烦 下面将把0到100的透明度按照5 的梯度列出 方便收藏使用 其实在开发的过程中我们会经常遇
  • php字段验证规则,ThinkPHP 自动验证及验证规则详解

    ThinkPHP 自动验证及验证规则详解 ThinkPHP 自动验证 ThinkPHP 内置了数据对象的自动验证功能来完成模型的业务规则验证 自动验证是基于数据对象的 而大多情况下数据对象是基于 POST表单 不是绝对的 创建的 基本的自动