手机
当前位置:查字典教程网 >编程开发 >php教程 >thinkPHP自动验证、自动添加及表单错误问题分析
thinkPHP自动验证、自动添加及表单错误问题分析
摘要:本文实例讲述了thinkPHP自动验证、自动添加及表单错误问题。分享给大家供大家参考,具体如下:最近再做一个项目,想用thinkphp写验证...

本文实例讲述了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自动验证、自动添加及表单错误问题分析1

thinkphp 自动完成图

看到没有,

protected $_auto = array( array('password','sha1',2,'function'), array('date', 'time', 2, 'function'), //把1换成2就好了。 );

问题就可以解决了。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

【thinkPHP自动验证、自动添加及表单错误问题分析】相关文章:

PHP输出缓冲控制Output Control系列函数详解

PHP 双链表(SplDoublyLinkedList)简介和使用实例

PHP实现恶意DDOS攻击避免带宽占用问题方法

多数据表共用一个页的新闻发布

社区(php&&mysql)二

用PHP实现验证码功能

PHP、Java des加密解密实例

typecho插件编写教程(二):写一个新插件

php操作memcache缓存方法分享

用libtemplate实现静态网页生成

精品推荐
分类导航