原文: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控制器中

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

2017-07-18

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

使用 self::get();  

获取数据时正确的 
self::with('user')->get()
这里会提示 method not exist:think\db\Query->get

只有单独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. POJ 1023 The Fun Number System

    Description In a k bit 2's complement number, where the bits are indexed from 0 to k-1, the weight o ...

  2. android应用中去android市场去评分的功能实现(吐槽一波个人应用上线...)

    一般的app可能会有这中功能,在应用中去android商店评分来提高排名,前段时间也把我的博客园上传到商店,这里不得不吐槽一些android商店的开放平台. 酷派,vivo,oppo,联想不支持个人开 ...

  3. node.js简单搭建服务,访问本地站点文件

    1.安装nodejs服务(从官网下载安装),node相当于apache服务器 2.在自己定义的目录下新建服务器文件如 server.js 例如,我在D:\nodeJs下创建了server.js文件 v ...

  4. spring 运行时属性值注入

    继续spring学习,今天介绍两种外部属性值注入的方式.当你需要读取配置信息时,可以快速读取. 开始之前先创建属性文件site.properties,放在classpath下面 #数据库配置 ### ...

  5. 轻松掌握VS Code开发.Net Core及创建Xunit单元测试

    前言 本篇文章主要还是介绍使用 VS Code 进行.Net Core开发和常用 CLI命令的使用,至于为啥要用VS Code ,因为它是真的是好看又好用 :) ,哈哈,主要还是为了跨平台开发做准备. ...

  6. 《android开发艺术探索》读书笔记(十五)--Android性能优化

    接上篇<android开发艺术探索>读书笔记(十四)--JNI和NDK编程 No1: 如果<include>制定了这个id属性,同时被包含的布局文件的根元素也制定了id属性,那 ...

  7. java并发 - 自底向上的原理分析

    [TOC] 事先声明,我只是java并发的新手,这篇文章也只是我阅读<java并发编程的艺术>一书(内容主要涉及前3章)的一些总结和感悟.希望大家能多多讨论,对于错误的地方还请指出. 0. ...

  8. hdu 1548 简单BFS

    题意:坐电梯,每次可以选着上下,对应移动的楼层是Ki,问从起点到终点最少要按几次. AC代码: #include<cstdio> #include<cstring> #incl ...

  9. java 8 Lambda表达式(翻译自Stackoverflow)

    (原文链接)Lambda只能作用于一个只有一个抽象方法的函数式接口(Function Interface),不过函数式接口可以有任意数量default或static修饰的方法(因此,它们有时也被当做单 ...

  10. MFC: 获得关机消息;阻止Windows关机

    WM_QUERYENDSESSION消息是Windows向你询问Windows能否关闭,WM_ENDSESSION消息表示提示你Windows即将关闭.故当应用程序退出时, WM_QUERYENDSE ...