gpt4 book ai didi

Laravel框架执行原生SQL语句及使用paginate分页的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 47 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Laravel框架执行原生SQL语句及使用paginate分页的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Laravel框架执行原生SQL语句及使用paginate分页的方法。分享给大家供大家参考,具体如下:

1、运行原生sql 。

public function getList($data){//获取前端传过来的参数  $user = $data['userId'];  $office = $data['officeId'];  $key = $data['oneKeySearch'];//进行模糊搜索和联合查询  $where = 'and 1=1 ';  if($key!=null) {    $where.= ' and ( a.code like "%' . $key . '%"';    $where.= ' or b.name like "%' . $key . '%"';    $where.= ' or c.name like "%' . $key . '%")';  }//对前端传回的字段进行判断,如果不为空则执行条件查询  if($user!=null){    $user='and a.userId='.$user;  }  if($office!=null){    $office='and a.officeId='.$office;  }//自定义原生sql语句,%s可以传参数到sql语句中,格式如下:  $sqlTmp=sprintf('select a.id,a.code,a.attendanceRate,a.statisticTime,            b.`realName` as userName,c.`name` as officeName            from xxxa1            LEFT JOIN xxx2 b ON a.userId=b.id            LEFT JOIN xxx3 c ON a.officeId=c.id    where a.deleted_at is null and 1=1 %s %s %s ORDER BY a.code    ', $where,$office,$user);//执行SQL语句  $results = DB::select($sqlTmp);//返回结果  return $results;}

2、运行查询构建器 。

public function getList($data){//获取前端传过来的参数  $user = $data['userId'];  $office = $data['officeId'];  $key = $data['oneKeySearch'];/* * 1、表格使用别名:直接是 “表名 as table1" ,(下面是xxx1 as a) * 2、左连接:DB::table('表1') *        ->leftJoin('表2', '表1.id', '=', '表2.外键关联') * 3、因为使用了软删除,所以在查询的时候要加上 ->whereNull('a.deleted_at') * 4、使用 DB::raw方法创建一个原生表达式,写进要查询的字段名称 *    ->select(DB::raw('a.id,a.code,b.`realName` as userName,c.`name` as officeName')) *5、使用orderBy进行排序 * */     $data=DB::table('biz_attendance_sta as a')       ->leftJoin('sys_user as b', 'b.id', '=', 'a.userId')       ->leftJoin('sys_office as c', 'c.id', '=', 'a.officeId')      ->select(DB::raw('a.id,a.code,a.attendanceRate,a.statisticTime,              b.`realName` as userName,c.`name` as officeName'))       ->whereNull('a.deleted_at')       ->orderBy('a.code', 'desc'); //使用 if(!empty(xxx)){},来判断前端传过来的参数是否为空,不为空则执行条件查询     if(!empty($user)){       $data = $data->where( 'a.userId',$user);     }    if(!empty($office)){      $data = $data->where( 'a.officeId',$office);    } //使用 if(!empty(xxx)){},来判断前端传过来的参数是否为空,不为空则执行模糊搜索和联合查询    if (!empty($key)) {      $data = $data->where(function ($query) use ($key) {        $query->where('a.code', 'like', "%{$key}%")          ->orWhere('b.name', 'like', "%{$key}%")          ->orWhere('c.name', 'like', "%{$key}%");      });    }//使用->paginate(10)进行分页    $results=$data ->paginate(10);    return $results;}

  。

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助.

最后此篇关于Laravel框架执行原生SQL语句及使用paginate分页的方法的文章就讲到这里了,如果你想了解更多关于Laravel框架执行原生SQL语句及使用paginate分页的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com