thinkphp的字段映射功能可以隐藏表单中真正的字段名,自动映射到真正的数据库字段,如表单中input的提交的名字为mail,而数据库中存的是email
实现的原理非常简单
首先定义一个映射的数组,以下是官方的例子
protected $_map = array(
'name'=>'username',// 把表单中name映射到数据表的username字段
'mail'=>'email',// 把表单中的mail映射到数据表的email字段
);
然后在使用create方法后即可将数据映射到表真正的字段上
代码解析
// 检查字段映射
if(!empty($this->_map)) {
foreach ($this->_map as $key=>$val){
if(isset($data[$key])) {
$data[$val] = $data[$key];
unset($data[$key]);
}
}
}
循环映射数组$this->_map,添加数据$data[映射后字段名]为$data[映射前的字段名],再删除$data[映射前的字段名]