thinkPHP自动验证、自动添加及表单错误问题分析


Posted in PHP onOctober 17, 2016

本文实例讲述了thinkPHP自动验证、自动添加及表单错误问题。分享给大家供大家参考,具体如下:

最近再做一个项目,想用thinkphp写验证,结果泪奔了几天。一开始就是令牌错误,后来有什么自动添加无效。

一直在测试,一直在查找,知道发现create()方法原来有两个参数,

第一个参数是大家都知道了数据参数,第二个是隐藏的$type参数,这个参数用来控制什么的呢??

//$type = $type?$type!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);

仔细琢磨了这句话才发现,这个隐藏参数是用来指明本次数据库具体是什么操作的?

$type取值为  1即为插入操作,0即为更新操作,默认的情况下是不用给这个参数赋值的,原因是,系统能自动识别。

如果你的主键是数据库自动的添加的,那就没事。如果是手动添加,那就悲剧了。因为默认是更新数据操作。

下面是我写的自动完成的代码

protected $_auto = array(
array('password','sha1',1,'function'),
array('date', 'time', 1, 'function'),
);

看到那个1了没有,那个1表示是当插入数据是,才执行函数。PS:就是因为这个,纠结了我N久。

当要录入数据的时候您可以这么写:

create($_POST,1)//【插入数据】
create($_POST,2)//【更新数据】

直接告诉create方法此次操作是插入操作,这样可以解决自动完成时机不对问题,自动完成无效问题。

但你执意不要这么写,我也没办法,你只要记得,如果create()函数,默认为更新数据。写Model方法时。

thinkPHP自动验证、自动添加及表单错误问题分析

thinkphp 自动完成图

看到没有,

protected $_auto = array(
array('password','sha1',2,'function'),
array('date', 'time', 2, 'function'), //把1换成2就好了。
);

问题就可以解决了。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php防攻击代码升级版
Dec 29 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
php 操作符与控制结构
Mar 07 PHP
php实现zip文件解压操作
Nov 03 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
Laravel 框架路由原理与路由访问实例分析
Apr 14 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 #PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 #PHP
php根据数据id自动生成编号的实现方法
Oct 16 #PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 #PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 #PHP
php组合排序简单实现方法
Oct 15 #PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 #PHP
You might like
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
vue实现微信分享功能
2018/11/28 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python之eval()函数危险性浅析
2014/07/03 Python
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Python文件去除注释的方法
2015/05/25 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
离婚协议书怎么写
2015/01/26 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang