博客列表 >ThinkPHP5使用模型查询数据

ThinkPHP5使用模型查询数据

路雲萧的博客
路雲萧的博客原创
2017年09月28日 18:49:531805浏览

//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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议