ThinkPHP开发指南-模型-高级模型之序列化字段:修订间差异
来自站长百科
(新页面: <span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>上一页</span> <div style="cle...) |
无编辑摘要 |
||
第1行: | 第1行: | ||
<span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>[[ThinkPHP开发指南-模型之高级模型|上一页]]</span> | <span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>[[ThinkPHP开发指南-模型之高级模型|上一页]]</span> | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
序列化字段是新版推出的新功能,可以用简单的数据表字段完成复杂的表单数据存储,尤其是动态的表单数据字段。要使用序列化字段的功能,只需要在模型中定义serializeField属性,定义格式如下: | |||
'''PHP代码''' | |||
<pre> | |||
protected $serializeField = array( | |||
'info' => array('name', 'email', 'address'), | |||
); | |||
</pre> | |||
Info是数据表中的实际存在的字段,保存到其中的值是name、email和address三个表单字段的序列化结果。序列化字段功能可以在数据写入的时候进行自动序列化,并且在读出数据表的时候自动反序列化,这一切都无需手动进行。下面还是是User数据表为例,假设其中并不存在name、email和address字段,但是设计了一个文本类型的info字段,那么下面的代码是可行的: | |||
'''PHP代码''' | |||
<pre> | |||
$User = D("User"); // 实例化User对象 | |||
// 然后直接给数据对象赋值 | |||
$User->name = 'ThinkPHP'; | |||
$User->email = 'ThinkPHP@gmail.com'; | |||
$User->address = '上海徐汇区'; | |||
// 把数据对象添加到数据库 name email和address会自动序列化后保存到info字段 | |||
$User->add(); | |||
</pre> | |||
*查询用户数据信息 | |||
'''PHP代码''' | |||
<pre> | |||
$User->find(8); | |||
// 查询结果会自动把info字段的值反序列化后生成name、email和address属性 | |||
// 输出序列化字段 | |||
echo $User->name; | |||
echo $User->email; | |||
echo $User->address; | |||
</pre> | |||
[[category:ThinkPHP]] |
2010年5月11日 (二) 15:28的最新版本
导航:上一页
序列化字段是新版推出的新功能,可以用简单的数据表字段完成复杂的表单数据存储,尤其是动态的表单数据字段。要使用序列化字段的功能,只需要在模型中定义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;