ThinkPHP表单数据智能实例分析写的创造方法
创建数据对象创建()
除了手动构建数据集进图书馆,ThinkPHP还提供了一种创建()自动创建数据对象的方法,创建()方法会自动收集提交的表单数据和创建数据对象,无需人工干预,具有数据字段的形式更具优势。
在表单数据中写入前面的文本的例子是用创建()实现的:
公共功能insert2(){
标题(内容类型:文本/ HTML;字符集= UTF-8);
$ = m(用户);
如果($ DAO - >创建()){
$道->密码= MD5($ _post {密码));
$道->注册日期=时间();
如果($ lastinsid = $道->添加()){
回声插入数据ID是:$ lastinsid ;
{人}
数据写入错误!;
}
其他{ }
出口(合道-> geterror)。({返回);
}
}
当创建一个数据对象时,它会自动收集提交的表单数据,表单数据可能需要通过加密密码等处理处理,这样我们就可以写入数据表,从而修改或添加或删除数据对象的成员属性值。
提示:由创建()创建的数据对象存储在内存中,可以在输入操作(添加()或保存())执行之前进行修改。
在上面的例子中,创建()方法的行为与日期()方法一致,但是日期()方法只是创建一个数据对象,但是创建()方法也有:
(1)令牌验证
自动数据验证
三.字段映射支持
字段类型检查
数据自动完成
为了完成这些先进的数据模型功能,需要实例化数据模型采用D method.thinkphp提供各种验证和填充规则调用,专门为ThinkPHP自动验证和ThinkPHP自动填充的相关文章。
自动检定与自动灌装
在将表单写入数据表之前,通常有一些数据检测(用户名是否提交以满足要求)和处理,例如示例中的密码加密和当前时间戳。
在libmodel目录,创建usermodel.class.php文件(用户模型对象创建的,也_user表前缀),添加自动验证和自动填写规则:
类用户模型扩展模型{
自动验证设置
保护_validate美元=阵列(
阵列('username ','require ','用户名必须填写!,1),
阵列('email','email' ','邮箱格式错误!,2),
阵列('username ',' ','用户名已经存在!,0,特殊的,1),
);
/ /自动填充设置
保护_auto美元=阵列(
阵列('regdate '时间',自::model_insert,'function),
阵列('password ','md5,自::model_insert,'function),
);
}
改变insert2操作:
公共功能insert2(){
标题(内容类型:文本/ HTML;字符集= UTF-8);
$ = d(用户);
如果($ DAO - >创建()){
如果($ lastinsid = $道->添加()){
回声插入数据ID是:$ lastinsid ;
{人}
数据写入错误!;
}
其他{ }
出口(合道-> geterror)。({返回);
}
}
如果提交的数据不符合验证要求(如用户名),创建()创建一个数据对象失败(返回false),至道-> geterror()打印设置在自动验证设置规则的提示信息:用户名已存在。
如果验证规则被传递,系统将自动填充设置,用MD5加密表单密码,并获取当前时间戳以填充创建()的数据对象。
因此,D方法与生成()相结合的方法是非常智能和强大的,正确地使用该方法可以达到快速发展的目标。
提示:uff1a
(1)D方法由于其强大的功能而与生成()相结合,也失去了一定的效率,在业务逻辑不复杂的情况下,推荐m方法+数据()模式。
(2)默认情况下创建()接受POST数据。如果你想接受其他类型的数据,您可以指定仅在参数,如接受到数据:创建($ _get)
希望本文有助于基于ThinkPHP框架的PHP程序设计人。