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 相关文章推荐
实用函数10
Nov 08 PHP
PHP-redis中文文档介绍
Feb 07 PHP
PHP Directory 函数的详解
Mar 07 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
PHP内核探索之变量
Dec 22 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
PHP内存溢出优化代码详解
Feb 26 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php数组去重实例及分析
2013/11/26 PHP
php表单敏感字符过滤类
2014/12/08 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
js中关于一个分号的崩溃示例
2013/11/11 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Python异常处理操作实例详解
2018/05/10 Python
python将字母转化为数字实例方法
2019/10/04 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
给排水工程师岗位职责
2013/11/21 职场文书
英语专业学生个人求职信范文
2014/01/06 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
会计专业求职信范文
2015/03/19 职场文书
记者节感言
2015/08/03 职场文书
体育教师研修感悟
2015/11/18 职场文书
Python实现滑雪小游戏
2021/09/25 Python