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实现MVC开发得最简单的方法――模型
Apr 10 PHP
php strcmp使用说明
Apr 22 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
php使用google地图应用实例
Dec 31 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
PHP中is_file()函数使用指南
May 08 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
实例讲解通过​PHP创建数据库
Jan 20 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实现链式操作的三种方法详解
2017/11/16 PHP
php7 新增功能实例总结
2020/05/25 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
Python3基础之函数用法
2014/08/13 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
优秀通讯员事迹材料
2014/01/28 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
单身申明具结书
2015/02/26 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL