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;