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的ASCII码转换类
Jul 05 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python基于http下载视频或音频
2018/06/20 Python
python如何实现一个刷网页小程序
2018/11/27 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
基于python实现雪花算法过程详解
2019/11/16 Python
使用python实现画AR模型时序图
2019/11/20 Python
python 使用shutil复制图片的例子
2019/12/13 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
实习科室评语
2015/01/04 职场文书
实习班主任自我评价
2015/03/11 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
网络研修随笔感言
2015/11/18 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python