首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用laravel eloquent‘`when`’代替if-elseif if来满足两个值的条件

在Laravel Eloquent中,可以使用when方法来代替if-elseif条件语句,以满足两个值的条件。when方法接受两个参数:第一个参数是条件,第二个参数是一个闭包函数,用于定义满足条件时的操作。

下面是使用when方法代替if-elseif条件语句的示例:

代码语言:php
复制
$result = Model::query()
    ->when($value1, function ($query, $value1) {
        return $query->where('column1', $value1);
    })
    ->when($value2, function ($query, $value2) {
        return $query->where('column2', $value2);
    })
    ->get();

在上述示例中,$value1$value2是两个条件值。如果$value1存在,则将where条件添加到查询中,否则忽略该条件。同样地,如果$value2存在,则将第二个where条件添加到查询中。

这种使用when方法的方式可以使代码更加简洁和可读。同时,它还可以与其他Eloquent查询方法链式调用,以构建更复杂的查询。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。

  • 腾讯云服务器(CVM):提供高性能、可扩展的云服务器实例,适用于各种应用场景。详情请参考腾讯云服务器产品介绍
  • 腾讯云数据库(TencentDB):提供稳定可靠的云数据库服务,包括关系型数据库(MySQL、SQL Server等)和非关系型数据库(MongoDB、Redis等)。详情请参考腾讯云数据库产品介绍

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析

where([ ['id',' =',1003], ['id','<',1005] ])- get(); 通过orwhere()连接两个并列条件,例如查询id =1003或者id<1002数据...Eloquent ORM本质上是查询构建器,因此上面查询构建器所使用方法Eloquent都可以使用。...如果需要自定义表名,则需要重写$table变量指定表名。 Eloquent默认主键为’id’,且该字段为自增int型,如果需要自定义主键,可以通过$primaryKey指定。...Eloquent默认会管理数据表创建时间、更新时间,对应数据表中created_at、updated_at字段,你需要在创建表时包含这两个字段。...()、first()获取数据 通过上面的增删改查可以看出Eloquent可以使用查询构建器所有方法,除了增删改查外,还有where、聚合函数等。

13.3K51

laravel框架模型和数据库基础操作实例详解

使用了pdo参数绑定,使应用程序免于sql注入,因此传入参数不需要额外转义特殊字符。基本上可以满足所有的数据库操作,而且在所有支持数据库系统上都可以执行。...vipinfo")- chunk(2,function($students){ //每次查2条 var_dump($students); if(.......) return false; //在满足某个条件使用...; 3.Eloquent ORM 1.简介、模型建立及查询数据 简介:laravel所自带Eloquent ORM 是一个ActiveRecord实现,用于数据库操作。...新增数据、自定义时间戳、批量赋值 (1)使用save方法新增 laravel会默认维护created_at,updated_at 两个字段,这两个字段都是存储时间戳,整型11位,因此使用时需要在数据库添加这两个字段...修改数据 使用save方法更新模型 使用update方法更新数据(和create相对应Eloquent模型类还支持使用update方法更新数据,同样要用到批量赋值) //通过模型更新数据 $student

2.8K20

orm 系列 之 Eloquent演化历程2

本文是orm系列第三篇,也是Eloquent演化第二篇,Eloquent系列会尝试着讲清楚Eloquent如何一步一步演化到目前功能强大版本,但是毕竟个人能力有限,不可能分析非常完善,总会有不懂地方...中到处都是接口,接口定义了要满足契约,彼此之间都过接口交流,最大进行了解耦。...commentable_id列对应 Post 或Video ID ,而 commentable_type 列对应所属模型类名。...让我们跟着git继续追踪吧_ 新纪元 为了解决PHP组件管理及散步问题,2009年php|tek大会上成立了PHP-FIG组织,目的在于透过三个方式制定PHP社群在开发组件时规范,laravel...Manager,记得网上搜索过关键字Using Eloquent outside Laravel,我们可以看到一篇Vivek Kumar Bansal写文章,文章从2方面介绍了怎么使用Eloquent

2.4K30

如何扩展Laravel Auth满足项目需求

之前写过两篇文章分别介绍了Laravel Auth认证系统构成和实现细节知道了Laravel如何应用看守器和用户提供器进行用户认证,但是在现实工作中大部分时候产品用户体系是早就有的这种情况下就无法使用框架自带...bcypt加密存储密码,但是很多已经存在老系统中用户密码都是用盐加明文密码做哈希后存储,如果想要在这种老系统中应用Laravel开发项目的话那么我们就不能够再使用Laravel自带登录和注册方法了...,下面我们就通过实例看看应该如何扩展Laravel用户认证系统让它能够满足我们项目的认证需求。...修改用户注册 首先我们将用户注册时,用户密码加密存储方式由 bcypt加密后存储改为由盐与明文密码做哈希后再存储方式。...用户认证系统,目的是让大家对Laravel用户认证系统有一个更好理解知道在Laravel系统默认自带用户认证方式无法满足我们需求时如何通过自定义这两个组件扩展功能完成我们项目自己认证需求。

2.6K20

Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解

我们先来看一下官网如何定义这个概念When building an API, you may need a transformation layer that sits between your...如果你熟悉使用API进行输出,构架前后端分离网络应用,那么你应该会发现,当我们使用Eloquent从数据库中取出数据后,如果想以JSON格式进行输出,那么我们可以使用- toJson()这个方法,这个方法可以直接将我们...要解决这个问题,我们可以在model里定义hidden或者visible这两个数组进行字段隐藏或者显示: <?...是的,我们确实可以使用accessor简化我们数据层级: /** * Get the customer's full shipping address * * @return string...本文主要讲解了Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解,更多关于Laravel框架使用技巧请查看下面的相关链接

4.4K30

Laravel Eloquent 模型关联关系(下)

今天我们将在定义好模型关联基础上进行关联查询、插入和更新操作,看看如何借助模型关联提高代码可读性并提高编码效率。...`deleted_at` is null order by `created_at` desc 懒惰渴求式加载 有时候,你可能觉得一次性加载所有关联数据有点浪费,对于特定条件下才使用数据我们可以通过动态条件判断进行渴求式加载或者延迟加载...这样,我们就不需要在每个地方去判断如果文章作者信息为空该如何处理了,因为这种情况下返回也是一个正常 User 模型实例。...: 结语 好了,关于关联关系我们就介绍到这里,我们分了三篇篇幅介绍 Eloquent 模型管理关系,回顾一下,主要包含以下内容: 七种关联关系定义:一对一、一对多、多对多、远层一对多、一对一多态关联...希望你看完学院君这一系列教程可以了解并完全掌握 Eloquent 模型定义和使用,有什么问题,欢迎随时与我交流。

19.5K30

Laravel系列4.3】模型Eloquent ORM使用(一)

对于 Laravel 中标准 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据创建时间和修改时间...但是在我们今天演示中,不需要这两个字段,所以也可以设置一个属性关闭 Model 针对它们自动处理。...里面的东西是什么,则是根据我们 MTest 这个 Model 里面的 sex 字段确定,也就是 $this->child->{$this->foreignKey}这一段。...等等,不对呀,我们在模型里面定义是一个 gender() 方法,怎么在外面使用是一个属性?别急,我们再来看看源码,看看框架中是如何把调用属性变成调用一个方法。...其实就是第一个参数是一个,然后把它放到第二个参数中,这个参数是一个回调函数,然后通过回调函数来使用这个进行其它操作。这一段可能说得不太清楚,大家可以自己查看源代码然后调试一下就明白了。

8.8K20

Laravel 5 系列入门教程(一)【最适合中国人 Laravel 教程】

/ ---- 默认条件 本 文默认你已经有配置完善 PHP + MySQL 运行环境,懂得 PHP 网站运行基础知识。...跟随本教程走完一遍,你将会得到一个基础包含登录简单 blog 系统,并将学会如何使用一些强大 Laravel 插件和 composer 包(Laravel 插件也是 composer 包)。...本系列教程使用 Laravel 5.0 版本,5.1 版本去掉了本系列教程主要讲解元素(Auth 系统),不建议使用 5.1 学习。...不想配置镜像同学,可以使用 Laravel 界非常著名 安正超 搞安装神器:https://github.com/overtrue/latest-laravel 3....运行一下命令: php artisan make:model Article php artisan make:model Page > Laravel 4 时代,我们使用 Generator 插件新建

3.4K20

通过 Laravel Eloquent 模型实现简单增删改查操作

「ActiveRecord」是 ORM 一种实现模式,Eloquent 则是 Laravel「ActiveRecord」。...此外,如果查询条件是主键 ID 的话,还可以将上述调用简化为通过 find 方法实现: $user = User::find(1); 返回结果与上面完全一致。...此外,Eloquent 还为我们提供了一些快捷插入方法,比如 firstOrCreate 和 firstOrNew,这两个方法都会先尝试通过指定查询条件在数据库中查找对应记录,如果没有找到的话,会创建对应模型类实例...,并将查询条件作为对应字段设置到模型属性上。...「约定优于配置」理念在 Eloquent应用,最后还给大家演示了如何通过 Eloquent 实现数据库增删改查,当然,Eloquent 功能远不仅如此,还支持很多强大功能,比如批量赋值、软删除

7.9K20

Laravel5.7 Eloquent ORM快速入门详解

Eloquent 模型看作功能强大查询构建器,你可以使用流畅查询与其关联数据表。例如: <?... all 方法返回模型表所有结果,由于每一个 Eloquent 模型都是一个查询构建器,你还可以添加约束条件到查询,然后使用 get 方法获取对应结果: $flights = App\Flight...当然,这两个属性你只能同时使用其中一个而不能一起使用,因为它们是互斥。下面的例子中,除了 price 之外所有属性都是可以赋值: <?...,Laravel 提供了一个 updateOrCreate 方法一步完成。...Laravel 自带软删除功能就使用了全局作用域从数据库中拉出所有没有被删除模型。编写自定义全局作用域可以提供一种方便、简单方式确保给定模型每个查询都有特定条件约束。

15K41

一种 Laravel 中简单设置多态关系模型别名方式

作为 Laravel 重度使用者肯定都对多态关系不陌生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型关系就是多态多对多(Many To Many (Polymorphic...'App\Post', 'videos' => 'App\Video', ]); https://laravel.com/docs/6.x/eloquent-relationships#custom-polymorphic-types...我当然会选择 trait 方式实现,不管从定义还是代码耦合度上,使用 trait 解决这类特性需求都是再适合不过了,如果你对 trait 还不太熟悉,可以阅读我之前文章:《我所理解 PHP Trait...》[2] 我们目标是使用表名做为关系类别名,那么在模型中如何获取表名呢,直接使用模型 getTable 即可,那么整个 trait 实现如下: app/Traits/UseTableNameAsMorphClass.php...References [1] 多态多对多(Many To Many (Polymorphic)): https://laravel.com/docs/6.x/eloquent-relationships

2.7K10

Laravel系列4.4】模型Eloquent ORM使用(二)

模型Eloquent ORM使用(二) 对于模型探索我们还将继续。上篇文章中,只是简单地通过模型操作了一下数据库,并且学习了一下关联操作知识。...比如说我们可以使用类似于 array_map() 函数把集合中对象全部转换成数组,还可以用一个类似于 array_column() 函数只获取数据中两个字段组成键值对形式数据。...,用于获取数组元素指定,这样生成列表对于一些下拉框接口非常友好。...但 Eloquent\Builder 内部持有的一个query 属性依然是 Query\Builder 对象,也就是说在底层,它依然是调用我们熟悉那个 查询构造器 进行工作。...但是,这里划重点了,Eloquent\Builder 中有些方法是没有的,比如说 insert()、insertGetId() ,在模型中,使用 save() 就可以代替两个方法操作。

2.8K20

基于独立 Laravel Eloquent 组件编写 ORM 模型类

ORM 两种最常见实现方式是 Active Record 和 Data Mapper,Active Record 尤其流行,在很多框架中都能看到它身影,比如 Laravel 框架使用 Eloquent...这里,我们选择使用更加简单 Active Record 模式实现 ORM 模型类,并且为了简化流程,我们直接基于 Laravel 框架 Eloquent ORM 组件编写,就不再重复造轮子了。...下载 Eloquent ORM 相关扩展包 Eloquent ORM 作为 Laravel 框架自带 ORM 实现,还可以在 Laravel 框架之外作为独立 ORM 组件使用。...进入 vendor/illuminate/database,可以通过阅读 README.md 文件查看如何使用独立 Eloquent ORM 组件,接下来,我们将参照这个文档介绍编写博客项目的模型类实现...模型类全局可用(为了编写 Eloquent 模型类,如果只是使用 Laravel 提供数据库查询构建器功能,则不需要这些操作)。

1.9K10

Laravel 7发行说明

Eloquent 类型转换,包括转换成特定对象类型转换,请参照 Eloquent documentation。...自定义键名 有时你可能希望使用 id 以外字段解析 Eloquent 模型。...Laravel 7 允许为单个应用配置多个邮件驱动。在 mail 配置文件中每个邮件驱动都拥有它们自己配置以及自己独特 「transport」,这允许你应用使用不同邮件服务发送某些邮件。...默认情况下,Laravel使用 mail 配置文件中 default 选项指定邮件驱动作为邮件驱动。然而,你可以通过 mailer 方法来使用特定邮件驱动发送邮件。...在先前版本 Laravel 中, database 队列健壮性被认为无法满足生产环境需求。但是,Laravel 7 针对使用基于 MySQL 8+ 数据库队列应用进行了改进。

9K20

Laravel基础

一、Laravel核心目录文件介绍 app:程序核心代码和业务逻辑代码,其中Http目录是我们业务逻辑存放点 bootstrap:包含框架启动和自动加载文件 config:包含所有程序中配置文件...$name; }); 将参数使用正则表达式限制 Route::get('user/{name?}'...Builder)提供方便,流畅接口,用来建立及执行数据库查找语法 使用PDO参数绑定,以保护应用程序免于SQL注入,因此传入参数不需额外转义特殊字符 基本可以满足所有的数据库操作,而且在所有支持数据库系统上都可以执行...创建Model类型,方法里面声明两个受保护属性:$table(表名)和$primaryKey(主键) <?...ORM 删除数据 使用模型删除数据 通过主键值删除数据 根据指定条件删除数据 //1.

7.7K30
领券