这篇文章将为大家详细讲解有关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 自动完成图
看到没有,
protected $_auto = array( array('password','sha1',2,'function'), array('date', 'time', 2, 'function'), //把1换成2就好了。 );
问题就可以解决了。
关于“thinkPHP中自动验证、自动添加及表单错误的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。