AR模式

AR模式

在ThinkPHP框架中,一共存在两种操作模式:ORM模式与AR模式

ORM模式:① 实例化模型 ② 创建数据对象组装数组 ③ 调用相关方法执行相关操作

AR模式:① 实例化模型 ② 把数据映射到模型属性 ③ 调用相关方法执行相关操作

1、AR模式

  • 表映射到类
  • 字段映射到属性
  • 记录映射到对象

?

使用PHP代码模拟AR模式

① 设计数据库

② 创建UserModel.class.php模型,映射tk_user表

③ 把字段映射到模型中的属性

④ 把记录映射成对象

在实际项目开发中,虽然以上代码可以完成AR模式,但是还存在一些小问题。面向对象强调封装特性,不要暴露过多的信息给类外,改正以上代码如下图所示:

以上代码虽然解决了封装性,但是在类的外面我们就没有办法直接调用其属性了,那么该如何解决呢?

答:采用JavaBean思想,可以为每一个私有属性定义两个公有方法对其进行设置与获取。

但是以上代码如果具有多个私有属性,那么必须要封装多个公有方法,过于麻烦。为了解决这个问题,在PHP5.0之后引入了两个魔术方法__set()与__get()方法来解决。

2、ThinkPHP中的AR模式

① 实现增加操作

② 实现删除操作

③ 实现更新操作

④ 实现查询操作

问题:我们根本就没有在模型中定义过任何与字段同名的属性,为什么还可以直接操作呢?

时间: 2024-08-25 02:50:41

AR模式的相关文章

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

CI 2.2.0可以使用AR模式操作Oracle 10g数据库

一.控制器 <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class Topics extends CI_Controller{ function __construct()    {        parent::__construct();        $this->load->helper('url');        $this->load->helper('f

Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]

在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一.查询数据集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //1.该方法是根据一个条件查询一个集合 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->f

又要刷屏,苹果将增强AR图像技术,毫无违和感

原文标题:又要刷屏,苹果将增强AR图像技术,毫无违和感 今天苹果公开了一项新的专利,通过使用这项技术 ,一些AR应用能够在呈现AR图像时将它与现实存在物体之间那种奇怪的违和感消除,让AR图像变得与显示图像更加相似. 对于VR软件,苹果似乎一直都没有什么大动作,但是对于AR技术苹果明显抱有极大的兴趣.苹果CEO库克表示,虽然对于AR还没有彻底了解,但他已经认识到了它的潜力.对此有不少人预言iPhone上将搭载了AR机能,今日的一项发现让人们更加确认了这一可能性. 今天苹果公开了一项新的专利,它就是

yii框架AR详解

yii框架AR详解 虽 然Yii DAO可以处理事实上任何数据库相关的任务,但很可能我们会花费90%的时间用来编写一些通用的SQL语句来执行CRUD操作(创建,读取,更新和删除). 同时我们也很难维护这些PHP和SQL语句混合的代码,要解决这些问题,我们可以使用Active Record.    Active Record(AR)是一种流行的对象关系映射(ORM)技术.每个AR类代表一个数据表(或视图),其字段作为AR类的属性,一个AR实例代表在表中的 一行.常见的CRUD操作被作为AR类的方法

爆款AR游戏如何打造?网易杨鹏以《悠梦》为例详解前沿技术

7月31日,2018云创大会游戏论坛在杭州国际博览中心103B圆满举行.本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术.新实践,如AR.区块链.安全.大数据等.网易AR游戏生态合作负责人杨鹏表示,传统游戏模式趋同,AR游戏将是下一个重要风口网易AR游戏生态合作负责人杨鹏做了<从网易悠梦看AR前沿技术>的主题演讲,分享了网易基于AI技术和硬件基础所打造的爆款游戏<悠梦>,并详细了该游戏的AR游戏引擎.AR SDK和洞见内容浏览器等技术方案,助力<悠梦>成为年度

onethink使用经验

1 建议随时从oschina上下载onethink的最新版本,如果你遇到了怎么都解决不了的问题,比如菜单管理自定义菜单,左侧二级菜单不显示的问题,好像有一个历史版本就是有bug,好像是1.1开始的一个开发版,但是最新版本的修正了这个bug,而且之前也确实有变量存在混淆的问题: 2 添加数据的时候AR模式写法好像不怎么好用,建议直接写数组 3 二级菜单一定要在添加顶级菜单之后再把顶级菜单添加为自身的子菜单这样就没有问题了 4如果开始的时候数据表设计不合理不要删除模型尤其是用生成功能生成的模型会删除

PHP学习笔记A

//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH变量名建议用下划线方式分隔 // $var_name函数名建议用驼峰命名法 // varName定界符建议全大写 // <<<DING, <<<'DING'文件名建议全小写和下划线.数字 // func_name.php私有属性名.方法名建议加下划线 // private $_name

百度地图与 高德导航

概述 百度地图是百度提供的一项网络地图搜索服务,用户可以查询街道,商场,楼盘的位置,也可以找到自己附近的餐馆,学校,公园,银行等,高德导航是一款为车主用户提供的安全.易用.高效的离线手机导航软件,产品覆盖所有手机平台. 一简介 百度地图是百度提供的一项网络地图搜索服务,覆盖了国内近400多个城市,数千个区县,在百度地图里,用户可以快速定位到自己的位置,搜索周边美食娱乐,不但可以帮你找位置,还能帮你到哪去,公交,驾车,步行三种出行方式任你选择!还有蚯蚓路线.免费语音导航.时间胶囊让你出行无忧. 高