原文:http://www.upwqy.com/details/3.html

总结

在控制器中  模型操作

 get() 和 all()  只能单独使用来查询数据  

想要链式操作查询数据 需要使用find() 和select()   这里返回的都是对象集 

2017-12-04

另外补充一点,很多人都问 是使用db类还是model 类。

    这个其实没有明确的限定。tp5官网推荐使用model。

    我接触了tp5也将近一年了。大多时间使用的还是model类 ,tp5提供的很多方法都是需要model类 来使用的,比如with 模型关联,获取器 等等 比较方便的方法,

    而Db类 则针对于 使用比较单一的地方,。比如 获取配置表中的数据 ,不需要复杂的功能 只是单纯的查询数据,相对于来说使用db类比较好。不需要新建模型文件,直接查询即可。

    还有就是关于DB和model的使用 速度的问题.Db是直接操作sql语句 速度肯定是比model快  但是 相对于model提供的各种方便的功能来说,牺牲一点运行速度是值得的,   而且 使用model带来的速度影响是在接受范围内的

更新时间 2017-07-22

准备工作 创建User控制器 User模型  User数据表

在User控制器中

  1. use app\console\model\User as UserModel;
  2. $user = UserModel::all();
  3. dump($user);
  4. exit();
  5.  
  6. 这里会输出数据对象集 表示可用
  1. $user = UserModel::select();
  2. dump($user);
  3. exit();
  4.  
  5. 输出的也是数据对象集
  1. $user = UserModel::get();
  2. dump($user);
  3. exit();
  4. 这里返回到是ID1用户
  5. 尝试把ID1的用户删除掉 返回的是ID2的数据
  6.  
  7. 所以这里直接使用get()不带参数 会返回一个根据ID正序排列的第一个数据对象
  1. $user = UserModel::find();
  2. dump($user);
  3. exit();
  4.  
  5. 使用find() 和使用 get() 是一样的用法 单纯使用时
  1. $user = UserModel::where('id',5)->get();
  2. dump($user);
  3. exit();
  4.  
  5. 这里会报错
  6. [ error ] method not exist:think\db\Query->get
  1. $user = UserModel::where('id',5)->find();
  2. dump($user);
  3. exit();
  4.  
  5. 返回用户ID5的对象 如果查找的用户数据不存在会返回null
  1. $user = UserModel::where('id',5)->select();
  2. dump($user);
  3. exit();
  4.  
  5. 返回对象集
  1. $user = UserModel::where('id',5)->all();
  2. dump($user);
  3. exit();
  4. 报错 method not exist:think\db\Query->all

2017-07-18

假如有个Order模型  ,在尝试使用时有以下结果

  1. 使用 self::get();
  2.  
  3. 获取数据时正确的
  1. self::with('user')->get()
  1. 这里会提示 method not exist:think\db\Query->get
  2.  
  3. 只有单独get 时才会是正确的 ,不能够加入其他语句条件

TP5 模型类和Db类的使用区别的更多相关文章

  1. Jfinal中Db类的的使用

    Jfinal提供了两种操作数据库的组件,分别是Model类和DB类,可以极大地减少代码量,提高开发效率. Db类提供了在Model类之外更丰富的的数据库操作能力,使用Db类以及嵌套的Record类时, ...

  2. TP5 模型CURD

    ThinkPHP5的模型是一种对象-关系映射(Object / Relation Mapping ,简称 ORM)的封装,并且提供了简洁的ActiveRecord实现.一般来说,每个数据表会和一个“模 ...

  3. tp5数据库操作 Db类

    一.链接数据库 1.配置文件定义  application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...

  4. 封装自己的DB类(PHP)

    封装一个DB类,用来专门操作数据库,以后凡是对数据库的操作,都由DB类的对象来实现.这样有了自己的DB类,写项目时简单的sql语句就不用每次写了,直接调用就行,很方便! 1.封装一个DB类.一个类文件 ...

  5. nodejs操作mongodb数据库封装DB类

    这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...

  6. 封装DB类

    封装DB类     一般一个类单独书写在一个Php文件中,为了见名知意,会对文件名有一个规范:类名.class.php 第1步:     创建DB类 第2 步:     属性设计 第3步:     初 ...

  7. PHP——laravel之DB类->查询

    DB类之查询: 满足条件的全部获取:DB::table("表名")->where("name",">","1" ...

  8. nodejs mongodb 数据库封装DB类 -转

    使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关于mongoose的安装就是 npm install -g mongoose 这个DB类的数据库配置是 ...

  9. 域模型中的实体类分为四种类型:VO、DTO、DO、PO

    经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应 ...

随机推荐

  1. Jenkins实现PHP的自动部署

    1.汉化jenkins 1).安装汉化包 系统管理 -> 插件管理 -> 安装插件 ->选择插件(Locale plugin) 2).设置语言为中文 系统管理 -> 系统设置 ...

  2. [转]用JavaScript在浏览器中创建下载文件

    前端很多项目中,都有文件下载的需求,特别是JS生成文件内容,然后让浏览器执行下载操作(例如在线图片编辑.在线代码编辑.iPresst等. 但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打开 ...

  3. Windows Server 2016-图形化备份域控制器

    上边几章节我们补充了有关Windows Server 2016系统层面的相关内容,本章切回Active Directory正题,继续围绕AD域相关内容进行不断梳理补充.Windows Server B ...

  4. Spring-Security 自定义Filter完成验证码校验

    Spring-Security的功能主要是由一堆Filter构成过滤器链来实现,每个Filter都会完成自己的一部分工作.我今天要做的是对UsernamePasswordAuthenticationF ...

  5. 在windows上安装nginx

    在windows上安装nginx   最近自己也尝试了一下在windows上安装nginx,其实非常的简单,这里算是备忘一下.   首先需要到nginx的官网上下载最新版的nginx:http://n ...

  6. 《android开发艺术探索》读书笔记(十一)--Android的线程和线程池

    接上篇<android开发艺术探索>读书笔记(十)--Android的消息机制 No1: 在Android中可以扮演线程角色的有很多,比如AsyncTask.IntentService.H ...

  7. 【CF 678F】Lena and Queries

    Time Limit: 2000 ms   Memory Limit: 512 MB Description 初始有一个空集合 n个操作 有三种操作,如下: 1 a b 表示向集合中插入二元组(a,b ...

  8. 看eShopOnContainers学一个EventBus

    最近在看微软eShopOnContainers 项目,看到EventBus觉得不错,和大家分享一下 看完此文你将获得什么? eShop中是如何设计事件总线的 实现一个InMemory事件总线eShop ...

  9. java异常处理、多态

    第一:GC是什么? 为什么要有GC?  第二:垃圾回收的优点和原理.并考虑2种回收机制.  第三:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?  第 ...

  10. python基础 数据类型 判断语句

    python 类unix系统默认已经安装或使用源码包./confighuremakemake install python运行方法 通过交互式解释器 [root@room1pc01 ~]# pytho ...