TP中Model

TP中Model的用法

====Model 增加一条数据===

$userModel = D('User');//创建模型实例

$data = array(键=>值,键=>值,......);    要求键与表的列保持一致

$model->add($data);  就会自动插入

这个过程演示的是ORM(数据关系映射)方式操作数据库,就是指:数组的键与表的列一一对应,一个数组与表的一行数据对应,插入数组即是插入一行。

 

Model 里还有一种 ActiveRecords (活动对象)  ,对象映射成表的一行,对象的属性映射成表的列

即把对象的属性与表的列对应起来,操作对象的属性就是在操作列的数值,保存该对象,数据(对象的属性)也就保存到数据库了

===ORM与ActiveRecorders的区别与联系===

model 有一个$data属性 , 这个 $data非常关键,又被TP称为“数据对象”,$data是一个数组(与表映射后的数组),CRUD操作中,数据都是在$data中中转的

ORM的过程

以$model->add($data); 为例,传参$data,分析$data数组,把$data数组里存在但是键名不是表的列,这样的单元去掉,即剩下的单元能与表的列一一对应

$data=array('username'=>'zhangsan','email'=>'zs@sohu.com','height'=>66);

表结构:(id,username,email),_facade之后,$data中的非字段单元数据'height'=>66 就被unset去了,然后再调用db类的insert方法入库了

ActiveRecorders的过程

是把自己的$this->data属性的值,赋给一个数组变量

当$userModel->username='zhangsan'; 时 调用__set()魔术方法,把‘zhangsan’放置到$this->data属性中,即$this->data['username']='zhangsan';

这样通过操作属性,其实是操作$this->data这个数组,最后再把属性赋给一个数组变量,然后对该数组变量的操作就和ORM时一样了

转载于:https://www.cnblogs.com/echonn/archive/2012/10/13/2722552.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值