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服务器实现多session并发运行
Oct 09 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
Laravel实现表单提交
May 07 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
PHP copy函数使用案例代码解析
Sep 01 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
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
用Python进行基础的函数式编程的教程
2015/03/31 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
2014年单位植树节活动方案
2014/03/23 职场文书
总经理检讨书
2014/09/15 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
Python实现滑雪小游戏
2021/09/25 Python