博主信息
博文 24
粉丝 0
评论 2
访问量 33591
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
ThinkPHP5使用模型查询数据
路雲萧的博客
原创
2123人浏览过

//1. 参数为主键
$res = Staff::get(2);
//获取字段name的值,注意模型中用$this->getAttr("name")读取
dump($res -> name);   //等价: dump($res["name"])
dump($res -> salary); //等价: dump($res["salary"])
//2. 参数为数组
$res = Staff::get([
      'age'=>['>',30],
      'salary'=>['BETWEEN',[3000,5000]]
    ]);
//生成的SQL语句
SELECT * FROM `staff` WHERE `age` > 30 AND `salary` BETWEEN 3000 AND 5000 LIMIT 1
//3. 参数为闭包,即回调函数来生成查询条件
$res = Staff::get(function($query){
      $query->field([  //设置要显示的字段列表及别名
        'id'=>'编号',  //id字段别名:姓名
        'name'=>'姓名',
        'age'=>'年龄'
        ])->where([
          'id'=>['>',2]  //条件: id > 2
          ])->whereOr([  //追回OR条件
            'age'=>['exp','<40']  //age < 40
          ]);
      });
dump($res->getData());  //获取原始数据
//输出结果:
array(3) {
  ["编号"] => int(1)  //结果中字段名称已经是设置的直观中文别名啦
  ["姓名"] => string(6) "郭靖"
  ["年龄"] => int(30)
}
//4.用模型类直接静态调用数据库的查询方法(可链式),返回模型数据对象
$res = Staff::where('age','LT',40)->find();
dump($res->getData());

二、all(条件): 返回满足条件的多条记录

// 1.参数为主键,多个主键放在一个数组中
$res = Staff::all([1,3,5]);
//循环遍历模型对象数组  
foreach ($res as $val) {
 dump($val->getData());
}
// 2.参数是条件,多个AND条件,打包到一个数组中
$res = Staff::all([
      'age'=>['>',20],
      'salary'=>['BETWEEN',[3000,5000]]
    ]);
//循环遍历模型对象数组  
foreach ($res as $val) {
  dump($val->getData());
}
  
  
//3. 参数使用闭包,返回对象数组
$res = Staff::all(function($query){
  $query->field([
    'id'=>'编号',
    'name'=>'姓名',
    'age'=>'年龄'
    ])->where([
      'id'=>['>',2]
      ])->whereOr([
        'age'=>['exp','<40']
      ]);
      });
//循环遍历模型对象数组     
foreach ($res as $val) {
  dump($val->getData());
}
// 4.用模型类直接静态调用数据库的查询方法(可链式)
$res = Staff::where('salary','>',3500)->select();
//循环遍历模型对象数组 
foreach ($res as $val) {
 dump($val->getData());
}

三、获取字段列表column()

//1.获取name列所有数据,返回一维数组,默认返回索引数组
$res = Staff::column('name');
dump($res);
//2.参数为数组,第一个数组元素id为键名,返回关联数组
$res = Staff::column(['id','name']);
dump($res);

四、获取单字段的值value()

//value()方法通常要求前面有查询条件
$res = Staff::where('id',3)->value('name');
dump($res);



本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学