Thinkphp5 模型类和Db类的使用区别

本文阅读 2 分钟
首页 Thinkphp笔记 正文

使用总结

在控制器中模型操作
get() 和 all()只能单独使用来查询数据
想要链式操作查询数据 需要使用find() 和select() 这里返回的都是对象集

在User控制器中

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

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

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

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

thinkphp5模型时间戳设置
« 上一篇 11-03
解决thinkphp5跨域问题 cors协议解决
下一篇 » 11-05

发表评论