• 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时一样了

  • 相关阅读:
    Mini2440裸机开发之MMU
    Mini2440裸机开发之IIC
    Mini2440裸机开发之SPI
    Mini2440裸机开发之存储器控制器
    Mini2440裸机开发之模数转换开发
    Mini2440裸机开发之LCD编程(GB2312、ASCII字库制作)
    Python pandas df.iloc[:, 0] 取确定列值作双轴图
    python plot 画双坐标轴 设置百分比展示 和字体等细节
    python Sqlserver数据库画双轴图
    windows下Idea中用Python访问oracle数据库的方法
  • 原文地址:https://www.cnblogs.com/echonn/p/2722552.html
Copyright © 2020-2023  润新知