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;