本文通过实例描述了thinkPHP自动验证、自动添加和表单错误等问题。分享给大家参考,如下:
最近又做了一个项目,尝试用thinkphp写验证。结果我哭了好几天。一开始令牌是错的,后来自动添加的就失效了。
我一直在测试和搜索,直到发现create()方法最初有两个参数。
第一个参数是已知的数据参数,第二个是隐藏的$type参数。这个参数用来控制什么?复制代码如下:/$ type=$ type?$type!空($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:缠了我很久的原因。
当你想输入数据时,你可以这样写:
Create($_POST,1)/[插入数据] Create($_POST,2)/[更新数据]直接告诉create方法这个操作是插入操作,可以解决定时不正确,自动完成无效的问题。
但如果你坚持不这样写,我也没办法。请记住,如果create()函数默认更新数据。编写模型方法时。
Thinkphp自动完成图
看到了吗,
protected $ _ auto=array(array(' password ',' sha1 ',2,' function '),array ('date ',' time ',2,' function '),//只需将1更改为2。);问题是可以解决的。
更多对thinkPHP感兴趣的读者,请查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》、《PHP模板技术总结》、0103010。
希望本文对基于ThinkPHP框架的PHP编程有所帮助。