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 cache类代码(php数据缓存类)
Apr 15 PHP
PHP 中文处理技巧
Apr 25 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 PHP
PDO::beginTransaction讲解
Jan 27 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
javascript二维数组转置实例
2015/01/22 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vue cli 全面解析
2018/02/28 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python3写入文件常用方法实例分析
2015/05/22 Python
教你学会使用Python正则表达式
2017/09/07 Python
python读取中文txt文本的方法
2018/04/12 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
学习决心书范文
2014/03/11 职场文书
保研推荐信
2014/05/09 职场文书
医生个人年终总结
2015/02/28 职场文书
用人单位聘用意向书
2015/05/11 职场文书
银行资信证明
2015/06/17 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP