php的lavarel框架中join和orWhere的用法


Posted in PHP onDecember 28, 2020

Laravel是一个开源PHP框架,功能强大且易于理解。它遵循模型 - 视图 - 控制器设计模式(MVC)。Laravel重用了不同框架的现有组件,这有助于创建Web应用程序。这样设计的Web应用程序更加结构化和实用。

Laravel框架的主要特点:

1.模块化包装

2.依赖管理器完全基于composer

3.精湛的自动加载器

4.优雅的ORM

5.查询构建器作为潜在的ORM替代

6.PostgreSQL,MySQL,SQL Server平台支持您的数据库

7.简化的叶片模板引擎

8.比以前更快的自动化

9.内置身份验证机制和缓存机制

10.一流的路由功能和选项

11.无与伦比的质量会话控制

12.IO功能

13.Artisan命令-d或示例代码行接口

注:Composer是一个包含所有依赖项和库的工具。它允许用户创建与所提到的框架相关的项目(例如,Laravel安装中使用的项目)。借助Composer可以轻松安装第三方库。所有依赖项都在composer.json文件中记录,该文件放在源文件夹中。

下面开始今天的正文。

1. 前景题要:

在一个项目中,我遇到了需要联表查询的情况,同时联表之后需要通过一个关键词来筛选出对应的数据,就比如我这里需要对角色名字、用户名称、电话这几个字段,通过传入的一个keyword字段进行筛选。

2. 问题分析:

此时我需要把用户表联系上我们的订单表,订单表中有user_id的字段,从而可以得到订单的用户名称,这里首先讲一下join(联表)的用法。
常用的有三种join()、leftJoin()、rightJoin(),分别是内连接、左连接、右连接.

内连接:在两张表进行连接查询时,只保留两张表中完全匹配的结果集。即两张表的交集。
左连接:在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。即左表中存在的数据对应在右表中不存在,依旧会返回左表中的数据。
右连接:在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。与左连接恰好相反。

接着需要写查询的条件语句,我们首先 第一步需要查询有效的订单,其次第二步才是根据传入的keyword进行筛选,此处在最开始的情况下我是直接使用where和orWhere混合进行查询,但遇到了总是会有些查询条件未被包含进去,此处我查了相关资料才弄明白,我们此处可以将利用keyword筛选的查询写成一个闭包,从而不与其他where语句产生相互的影响。

3. 解决方案:

注:orWhere如果不用闭包的形式写很容易写成分开的查询条件

$order_res = Order::leftJoin('user', 'order.user_id', '=', 'user.id')->select('order.*', 'user.title')//此处只是将有用的信息选择在联表中。
->where('state', '=', 1) //首先就是将有效的订单筛选出来。
->where(function($query) use ($keyword){//再在此闭包中根据keyword关键词来进行筛选。
	$query->where('order.mobile', 'like', '%'.$keyword.'%')
		 ->orWhere('user.title', 'like', "%{$keyword}%")//此处用了两个orWhere查询,都是or的关系,会将三种条件任意一个满足的数据筛选出来。
		 ->orWhere('order.character_title', 'like', "%{$keyword}%");
});

到此这篇关于php的lavarel框架中join和orWhere的用法的文章就介绍到这了,更多相关php lavarel框架join和orWhere的用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
ADODB类使用
Nov 25 PHP
php 三维饼图的实现代码
Sep 28 PHP
php date()日期时间函数详解
May 16 PHP
PHP中设置时区方法小结
Jun 03 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 PHP
基于PHP实现发微博动态代码实例
Dec 11 PHP
php中yar框架实例用法讲解
Dec 27 #PHP
php中数组最简单的使用方法
Dec 27 #PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 #PHP
PHP操作Redis常用命令的实例详解
Dec 23 #PHP
php中yii框架实例用法
Dec 22 #PHP
php swoft框架实例用法
Dec 22 #PHP
PHP变量的作用范围实例讲解
Dec 22 #PHP
You might like
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP实现服务器状态监控的方法
2014/12/09 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
Javascript实现的分页函数
2006/12/22 Javascript
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
基于python实现学生信息管理系统
2019/11/22 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
英语翻译系毕业生求职信
2013/09/29 职场文书
劳资人员岗位职责
2013/12/19 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
保证书格式范文
2014/04/28 职场文书
年终奖发放方案
2014/06/02 职场文书
体育教师求职信
2014/06/30 职场文书
保护环境的宣传语
2015/07/13 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers