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初学者头痛的十四个问题
Jul 12 PHP
组合算法的PHP解答方法
Feb 04 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
9个比较实用的php代码片段
Mar 15 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
PHP强制转化的形式整理
May 22 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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实现根据字符串生成对应数组的方法
2014/09/22 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
PHP使用递归生成文章树
2015/04/21 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
jQuery.each使用详解
2015/07/07 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
详解python单例模式与metaclass
2016/01/15 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
小溪流的歌教学反思
2014/02/13 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Python 实现Mac 屏幕截图详解
2021/10/05 Python
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技