ThinkPHP开发指南-模型-高级模型之序列化字段
来自站长百科
导航:上一页
序列化字段是新版推出的新功能,可以用简单的数据表字段完成复杂的表单数据存储,尤其是动态的表单数据字段。要使用序列化字段的功能,只需要在模型中定义serializeField属性,定义格式如下:
PHP代码
protected $serializeField = array( 'info' => array('name', 'email', 'address'), );
Info是数据表中的实际存在的字段,保存到其中的值是name、email和address三个表单字段的序列化结果。序列化字段功能可以在数据写入的时候进行自动序列化,并且在读出数据表的时候自动反序列化,这一切都无需手动进行。下面还是是User数据表为例,假设其中并不存在name、email和address字段,但是设计了一个文本类型的info字段,那么下面的代码是可行的:
PHP代码
$User = D("User"); // 实例化User对象 // 然后直接给数据对象赋值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; $User->address = '上海徐汇区'; // 把数据对象添加到数据库 name email和address会自动序列化后保存到info字段 $User->add();
- 查询用户数据信息
PHP代码
$User->find(8); // 查询结果会自动把info字段的值反序列化后生成name、email和address属性 // 输出序列化字段 echo $User->name; echo $User->email; echo $User->address;