The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
自动生成数据

在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据:

// 获取表单的POST数据

$data['name'] = $_POST['name'];  

$data['email'] = $_POST['email'];
 

// 更多的表单数据值获取

……

然而DyhbFrame可以帮助你快速地创建数据对象,最典型的应用就是自动根据表单数据创建数据对象,这个优势在一个数据表的字段非常之多的情况下尤其明显。

很简单的例子:

// 实例化User模型

$User = M('User'); 


// 保存的时候自动创建数据对象,并且写入数据库

$User->add(); 

自动生成数据还支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等

$data['name'] = 'DyhbFrame';  

$data['email'] = 'doyouhaobaby2009@gmail.com';  

$User->add($data); 

 

而事实上,保存时候所做的工作远非这么简单,在创建数据对象的同时,完成了一些很有意义的工作,包括:


 数据自动验证

 字段映射支持

 数据自动完成

因此,我们熟悉的自动验证和自动完成(我们会在后面看到相关的用法)功能,可以用上。add或者update执行的时候会将自动获取的数据写入到数据库中。如果只是想简单创建一个数据对象,并不需要完成一些额外的功能的话,可以使用数组保存数据或者直接sql语句。

使用如下:

// 实例化User模型

$User = M('User');  


// 创建数据后写入到数据库

$data['name'] = 'DyhbFrame';  

$data['email'] = 'doyouhaobaby2009@gmail.com';

$User->add($data); 

 

使用data方法创建的数据对象不会进行自动验证和过滤操作,请自行处理。但在进行add或者update操作的时候,数据表中不存在的字段,程序会自动抛出sql语句错误,并且提示你纠正。