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 相关文章推荐
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
php adodb操作mysql数据库
Mar 19 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
支持中文的php加密解密类代码
Nov 27 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
php读取mysql的简单实例
Jan 15 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 PHP
PHP合并静态文件详解
Nov 14 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php中的登陆login实例代码
2016/06/20 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
javascript常用方法总结
2015/05/14 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
python with (as)语句实例详解
2020/02/04 Python
python代码实现图书管理系统
2020/11/30 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
护士的自我鉴定
2014/02/07 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2014年国庆节寄语
2014/09/19 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python