TP中可通过字段映射隐藏数据表的字段名
来源:互联网 发布:明教 捏脸数据 编辑:程序博客网 时间:2024/05/17 07:39
在ThinkPhP中,我们可以通过TP提供的一个关键字$_map来达到隐藏我们数据库中表的字段名的效果。
假设我们的User表里面有username和email字段,我们需要映射成另外的字段,定义方式如下:
例子如下:
namespace Home\Model;
use Think\Model;
Class UserModel extends Model{
protected $_map = array(
'name' =>'username', // 把表单中name映射到数据表的username字段
'mail' =>'email', // 把表单中的mail映射到数据表的email字段
);}
这样,在表单里面就可以直接使用name和mail名称作为表单数据提交了。我们使用create方法创建数据对象的时候,会自动转换成定义的实际数据表字段。
但注意:使用关键字$_map定义字段映射是单向的。也就是说,不会把我们从数据库差到的字段名给映射为表单的其他名。
例如:
// 实例化User模型
$User = D('User');
$data = $User->find(3);
dump($data);
输出结果类似:
array(size=4) 'id' => int 3 '<strong>username</strong>'=> string 'thinkphp'(length=8) <span style="font-family: Arial, Helvetica, sans-serif;">//而不是name</span>'<strong>email</strong>' => string 'thinkphp@gmail.com' (length=18) //而不是email 'status' => int 1这个时候取出的data数据包含的是实际的username和email字段。
如果我们需要在数据获取的时候自动处理的话,设置开启READ_DATA_MAP
参数;
'READ_DATA_MAP'=>true
这个时候,输出结果类似:
array(size=4) 'id' => int 3 '<strong>name</strong>'=> string 'thinkphp'(length=8) //用name 来代替username'<strong>mail</strong>' => string 'thinkphp@gmail.com' (length=18) //用mail 代替了email'status' => int 1也可以用
parseFieldsMap 来代替READ_DATA_MAP的效果
// 实例化User模型$User = D('User');$data = $User->find(3);$data = $User->parseFieldsMap($data);
通过上面的两种方式后,无论是find还是select方法读取后的data数据中就包含了name和mail字段数据了,而不再有username和email字段数据了。
这样,使用两个关键字就达到了隐藏我们数据表中的字段名。
来自:TP手册
0 0
- TP中可通过字段映射隐藏数据表的字段名
- TP框架的字段映射
- laravel获取数据表中所有的字段名
- tp 中add方法的缺点,过滤数据表中不存在的字段
- JDBC获取数据表的字段名
- SQLSERVER通过游标查询两个数据表共有字段名组合成的字符串
- mybatis generator无法将数据表中text字段映射问题
- mysql通过某字段里的部分内容搜索(附TP中FIND_IN_SET的使用)
- Oracle中使用游标获取指定数据表的所有字段名对应的字符串
- mysql 数据表名,字段名查询
- 数据库中,如何通过表名获取表的字段名(属性名)?
- ASP中重命名数据表字段的注意事项
- Interbase 数据表中字段的数据类型
- jdbc的meta编程--获取数据表的字段名
- thinkphp字段映射隐藏真实表单字段
- 查找SQL server 数据表的自增量字段名
- 通过SQL Script查看数据表各个字段的属性。
- MySQL修改数据表中的字段名
- poj 1797 Heavy Transportation 最小生成树 最大生成树
- @IBDesignable和@IBInspectable
- swing
- 欢迎使用CSDN-markdown编辑器
- JAVA平台介绍和基本数据类型讲解
- TP中可通过字段映射隐藏数据表的字段名
- sphinxse mysql 5.6编译错误
- hdu 1102 Constructing Roads 最小生成树Kruskal
- [Leetcode 241, Medium] Different Ways to Add Parentheses
- [Leetcode 240, Medium] Search a 2D Matrix II
- [Leetcode 227, Medium] Basic Calculator II
- [leetcde 212, Hard] Word Search II
- QT Creator环境配置实例
- hdu 2489 Minimal Ratio Tree 最小生成树kruskal