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执行批量mysql语句的解决方法
May 02 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
php出租房数据管理及搜索页面
May 23 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 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中去除所有js,html,css代码
2010/10/12 PHP
PHP分页类集锦
2014/11/18 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
Python动态加载模块的3种方法
2014/11/22 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
OpenCV实现人脸识别
2017/04/07 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
Python3实现购物车功能
2018/04/18 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python 装饰器重要在哪
2021/02/14 Python
有机童装:Toby Tiger
2018/05/23 全球购物
共产党员公开承诺践诺书
2014/05/28 职场文书
校园安全标语
2014/06/07 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
还款承诺书范本
2015/01/20 职场文书
办公室禁烟通知
2015/04/23 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫