ThinkPHP3.0完全开发手册                                           

 

6.21.2          序列化字段

序列化字段是新版推出的新功能,可以用简单的数据表字段完成复杂的表单数据存储,尤其是动态的表单数据字段。

要使用序列化字段的功能,只需要在模型中定义serializeField属性,定义格式如下:

protected $serializeField = array(

 'info' => array('name','email','address'),

);

Info是数据表中的实际存在的字段,保存到其中的值是nameemailaddress三个表单字段的序列化结果。序列化字段功能可以在数据写入的时候进行自动序列化,并且在读出数据表的时候自动反序列化,这一切都无需手动进行。

下面还是是User数据表为例,假设其中并不存在nameemailaddress字段,但是设计了一个文本类型的info字段,那么下面的代码是可行的:

$User D("User"); // 实例化User对象

// 然后直接给数据对象赋值

$User->name 'ThinkPHP';

$User->email 'ThinkPHP@gmail.com';

$User->address '上海徐汇区';

// 把数据对象添加到数据库 name emailaddress会自动序列化后保存到info字段

$User->add();

 

查询用户数据信息

$User->find(8);

// 查询结果会自动把info字段的值反序列化后生成nameemailaddress属性

// 输出序列化字段

echo $User->name;

echo $User->email;

echo $User->address;


NetPc