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 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
php 随机生成10位字符代码
Mar 26 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
php入门教程 精简版
Dec 13 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
Jan 07 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php封装的表单验证类完整实例
Oct 19 PHP
Yii框架分页实现方法详解
May 20 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
php递归函数怎么用才有效
2018/02/24 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
python实现获取Ip归属地等信息
2016/08/27 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python实现双色球随机选号
2020/01/01 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
告诉你怎样写创业计划书
2014/01/27 职场文书
中国好声音广告词
2014/03/18 职场文书
应届生自荐书
2014/06/23 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
碧霞祠导游词
2015/02/09 职场文书
接待员岗位职责范本
2015/04/15 职场文书