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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
php5.3 注意事项说明
Jul 01 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
php调整服务器时间的方法
Apr 03 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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
操作Oracle的php类
2006/10/09 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
Dojo 学习要点
2010/09/03 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
python取代netcat过程分析
2018/02/10 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
网络维护管理员的自我评价分享
2013/11/11 职场文书
小学教师师德承诺书
2014/05/23 职场文书
经典演讲稿开场白
2014/08/25 职场文书
组工干部对照检查材料
2014/08/25 职场文书
公司授权委托书
2014/10/17 职场文书
2014企业年终工作总结
2014/12/23 职场文书
2015年人事科工作总结
2015/04/28 职场文书
转正申请报告格式
2015/05/15 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang