Laravel框架执行原生SQL语句及使用paginate分页的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-10-25 14:55:43 浏览: 评论:0
这篇文章主要介绍了Laravel框架执行原生SQL语句及使用paginate分页的方法,以类函数的形式给出了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(!emptyempty($user)){
- $data = $data->where( 'a.userId',$user);
- }
- if(!emptyempty($office)){
- $data = $data->where( 'a.officeId',$office);
- }
- //使用 if(!empty(xxx)){},来判断前端传过来的参数是否为空,不为空则执行模糊搜索和联合查询
- if (!emptyempty($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;
- }
Tags: Laravel框架 SQL paginate
- 上一篇:Laravel框架实现修改登录和注册接口数据返回格式的方法
- 下一篇:最后一页
相关文章
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·Laravel 5框架学习之Eloquent 关系(2021-05-22)
- ·Laravel 5框架学习之用户认证(2021-05-22)
- ·详解php语言最牛掰的Laravel框架(2021-08-20)
- ·Laravel框架中自定义模板指令总结(2021-08-23)
- ·Laravel框架实现model层的增删改查(CURD)操作示例(2021-09-17)
- ·Laravel框架分页实现方法分析(2021-09-27)
- ·Laravel框架路由和控制器的绑定操作方法(2021-09-27)
- ·Ecmall最新SQL注射漏洞分析(2014-12-05)
- ·Drupal 7操作数据库常用sql(更新,删除,查询)(2014-12-05)
- ·Kesion cms sql注入漏洞修复及其分析(2015-03-24)
- ·Yii调试SQL的常用方法(2021-03-19)
- ·CodeIgniter错误mysql_connect(): No such file or directory解决方法(2021-04-10)
- ·Yii实现MySQL多数据库和读写分离实例分析(2021-05-02)
- ·Yii框架在页面输出执行sql语句以方便调试的实现方法(2021-05-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)