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

我可以在laravel eloquent的where子句中放入一个集合或数组吗?

在laravel eloquent的where子句中,可以使用集合或数组作为条件。当使用集合作为条件时,laravel会自动将集合转换为数组,并将数组中的每个元素作为条件进行匹配。这样可以方便地对多个条件进行筛选。

下面是一个示例代码:

代码语言:php
复制
$conditions = collect(['name' => 'John', 'age' => 25]);

$results = DB::table('users')
            ->where($conditions)
            ->get();

在上述代码中,我们使用了一个集合$conditions作为where子句的条件。集合中的每个键值对都会被转换为一个条件,相当于执行了where('name', 'John')->where('age', 25)

除了集合,你也可以使用数组作为条件,用法类似。例如:

代码语言:php
复制
$conditions = ['name' => 'John', 'age' => 25];

$results = DB::table('users')
            ->where($conditions)
            ->get();

这样也会得到相同的结果。

总结一下,使用集合或数组作为laravel eloquent的where子句的条件,可以方便地对多个条件进行筛选,提高代码的可读性和灵活性。

推荐的腾讯云相关产品:腾讯云数据库(TencentDB),提供高性能、高可用的数据库服务,支持多种数据库引擎,满足不同业务场景的需求。产品介绍链接地址:https://cloud.tencent.com/product/cdb

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

相关·内容

3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过

今天说一说,复杂超多WHERE子句,怎么写起来较为优雅。 学习时间 比如对于业务逻辑,User模型筛选查询时候有非常多限制条件,类似下面这样: ?...首先,你完全不必把每个条件都使用where链式调用,可以把查询条件放在一个 array 数组内,整体传入where子句。 ? 这样把拼装where子句工作,提前到查询数组操作上,就更加灵活了。...Laravel 软删除功能就是利用此特性从数据库获取 “未删除”模型。 你可以编写你自己全局作用域,很简单、方便为每个模型查询都加上约束条件。看官方给出示例: ?...就是在对应 Eloquent 模型方法前添加 scope 前缀,模型构造如下作用域方法: ?...调用使用选用就可以了: $users = User::active()->that()->get(); 写在最后 为了代码能够最大程度复用,laravel也是很拼了。就这个本地作用域,给五颗星。

2.8K10

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

集合操作 其实这个集合操作并不是模型特有的,还记得 查询构造器 ,我们查询列表时候,总会在最后加一个 toArray() ?...这个对象就是我们模型组件集合对象,它包含很多集合操作方法,如果以最简单角度理解的话,其实它就是帮我们封装了很多数组操作函数。 这个集合对象有什么作用呢?...比如说我们可以使用类似于 array_map() 函数把集合对象全部转换成数组,还可以一个类似于 array_column() 函数只获取数据两个字段组成键值对形式数据。...而另外一个 map() 函数就不用多说了,之前我们说过,Laravel PDO 默认查询构造器情况下,走是 PDO::FETCH_OBJ ,获得集合结果每个数据都是一个 stdClass...剩下还需要我们细讲觉得到这里真的已经非常清晰了。 然后我们来看一下这个 Model 基类其它方法,貌似没有发现 get() 、find() 之类方法呀?这是怎么回事。

2.8K20
  • Laravel5.7 Eloquent ORM快速入门详解

    简介 Laravel 内置 Eloquent ORM 提供了一个美观、简单与数据库打交道 ActiveRecord 实现,每张数据表都对应一个与该表进行交互模型(Model),通过模型类,你可以对数据表进行查询...该属性决定日期被如何存储到数据库,以及模型被序列化为数组 JSON 时日期格式: <?...$flight = App\Flight::where('active', 1)- first(); 还可以通过传递主键数组来调用 find 方法,这将会返回匹配记录集合: $flights = App...需要的话可以 apply 方法添加 where 条件到查询: <?...事件允许你一个指定模型类每次保存更新时候执行代码。 retrieved 事件会在从数据库获取已存在模型时触发。当一个新模型被首次保存时候,creating 和 created 事件会被触发。

    15.1K41

    【译】20个 Laravel Eloquent 小技巧(下)

    但是查询返回都是一个 Collection 对象,Laravel集合提供了很多方便操作方法,sortBy 就是其中一个,当然还可以用 filter 等集合操作) 12....就是对 DB 查询对象一个封装,所以可以用在 DB 上原始查询方法,都可以用在继承自 Eloquent model 对象上。)...用于大表大集合 Chunk()方法 不完全与Eloquent相关,它更多是Collection 集合类提供方法,但仍然很强大 —— 处理更大数据集,你可以将它们分成几块。...保存时候重写 update_at 字段 你知道 - > save()方法是可以接受参数? 因此,我们可以告诉它“忽略” updated_at默认填充当前时间戳功能。...->where('age', '>=', 65); }) 20 orWhere方法使用更多参数 最后一条,你可以个 orWhere 方法传递一个数组

    2.8K10

    3分钟短文 | Laravel SQL筛选两个日期之间记录,怎么写?

    引言 今天说一个细分需求,模型,或者使用laravel提供 Eloquent ORM 功能,构造查询语句时,返回位于两个指定日期之间条目。应该怎么写? 本文通过几个例子,为大家梳理一下。...学习时间 假设有一个模型 Reservation,我们查询某个日期预订条目数,首先构造日期字符串,使用内置函数: $now = date('Y-m-d'); 返回当前日期。...然后调用模型 where 查询语句: $reservations = Reservation::where('reservation_from', $now)->get(); 上一条生成SQL语句如下...to laravel可以使用 whereBetween 这个查询子句。...当然了,上面的方法是SQL中直接进行筛选,如果查询结果限制条目本身比较少,也能充分利用索引,所以不担心查询速度,那么我们可以查询完成后,返回 Eloquent Collection 集合上,

    3.3K10

    3分钟短文:Laravel 使用DB门面操作原生SQL

    引言 我们推荐使用laraveleloquent orm 模型操作数据库表, 因为特性更为丰富,组装更为灵活,在编程层面操作数据来来去去非常直观。...学习时间 系统提供了DB门面用于原生SQL操作,程序内引入下面的类: use Illuminate\Support\Facades\DB; 该类定义很简单,标准门面注册方法: class DB...DB门面既可以使用query builder链式操作,也可以用于执行原生查询。举几个例子。...比如简单: $users = DB::select('select * from users'); 该方法会返回一个标准对象集合。..., [1, $id]); 当然了,删除语句仅仅需要where子句条件参数绑定,其他与查询select无异: $countDeleted = DB::delete('delete from contacts

    2.2K20

    Laravel 模型操作中一次奇妙踩坑经历

    具体数据打印结果就不贴出来了哈,占地方,哈哈,直接说结果。 从打印结果可以看到 $userTask->tasks 是有合并之后数据,但是 $userTask 还是原先数据。...返回结果是修改了.... 这就尴尬了,难道是对象集合非对象属性不能这样赋值?也不对呀,思来想去决定对对象本身做一个探索,直接在 map 打印 $userTask : ?...还记得我们刚才测试打印时候 toArray ,就是他把对象集合转变成了一个数组,我们来看一下: ?...明显看到 toArray 方法将 attributes 和 relations 转化成数组了,而且用 array_merge 方法,大家知道相同 key 时候,后面数组会覆盖前面数组,从前面的测试可以看到...大家知道控制器中直接 return 时候,是会直接转化为 Json 数据格式,模型也相对应有这么一个方法: ? ? 一步步走下来发现,最终还是调用了 toArray 。

    1.6K30

    Laravel 实现Eloquent模型分组查询并返回每个分组数量 groupBy()

    Laravel 5.5 Linux mint 18 PHPStorm 最近刚玩Laravel,手册源码还没来得及看完就跃跃欲试做了个小项目,其中有个需求是分组查询数据库一个字段并返回每个分组数量...having 方法用法和 where 方法类似: $users = DB::table('users') - groupBy('account_id') - having('account_id...这时可使用 select 方法自定义一个 select 子句来查询指定字段: $users = DB::table('users')- select('name', 'email as user_email...要创建一个原始表达式,可以使用 DB::raw 方法: $users = DB::table('users') - select(DB::raw('count(*) as user_count...参考: Laravel Eloquent groupBy() AND also return count of each group 以上这篇Laravel 实现Eloquent模型分组查询并返回每个分组数量

    4.3K51

    laravel 模型Eloquent ORM 查询

    每个数据库表都有一个对应「模型」用来与该表交互。你可以通过模型查询数据表数据,以及在数据表插入新记录。 开始之前,请确保 config/database.php 配置数据库连接。...laravel Model 使用先进 Eloquent ORM 但也有优缺点 优点是数据库操作变简单安全 缺点也明显数据库操作变缓慢笨重 Eloquent ORM 作为 laravel 亮点...但是却报错了我们看到model生成sql 莫名其妙拼接了一个 s 这里百度了一下 artisan 生成model 若没有特别指定,laravel系统会默认自动对应名称为「Eloquent类名称小写复数形态...和使用了 DB 取出来数据一样是都是一个 Collection 集合,不一样是 DB 取出来数组,Model 取出来一个类,需要一层一层剥开点到 attributes 我们才能看到数据...像 get 里面这一长串方法一样,我们查询数据时候经常会有略微复杂查询把它们写成一个模型方法 比如说 app/Models/Test.php 文件一个 getList 方法 <?

    4.4K10

    如何使用 Laravel Collections 类编写神级代码

    提示: 如果你希望新方法随处可用,你应该将它们添加到服务提供喜欢创建一个 MacroServiceProvider 实先这个功能,对于你来说随你喜欢就好。...if 语句移至第一个里面,但是个人喜欢单个 if 语句中使用不超过两个条件语句,因为认为超过 2 个条件语句回事代码难以阅读。...如果你计划让它们可以 Eloquent 集合上使用,你需要在此场景下做相应代码处理才行。...查看官方文档获取更多这个迷人类库使用细节:https://laravel.com/docs/collections 提示: 你还可以获取这个 Collection 类独立安装包,使用非 laravel...如果你有兴趣,可以 follow @mattkingshott 原文 How Laravel Collections lead to Zen Code

    2.2K20

    Laravel Eloquent 模型关联关系(下)

    在前面两篇教程,学院君陆续给大家介绍了 Eloquent 模型类支持七种关联关系,通过底层提供关联方法,我们可以快速实现模型间关联,并且进行关联查询。...(); 返回是模型实例集合: 底层对应一个 EXISTS 查询: select * from `users` where exists ( select *...统计关联模型 我们还可以通过 Eloquent 提供 withCount 方法不加载关联模型情况下统计关联结果数量。...注:实际开发为了提高查询性能,我们往往是 posts 表冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询时候直接取该字段即可,从而提高查询性能。...Eloquent 允许我们为这种空对象定义一个默认类型,这个对象类型可以定义关联关系时候指定: public function author() { return $this->belongsTo

    19.6K30

    深入理解 Laravel Eloquent(三)——模型间关系(关联)

    本篇文章将跟大家一起学习 Eloquent 中最复杂也是最难理解部分——模型间关系。...pay: id ... ... user_id User 和 Pay 具有一对多关系,换句话说就是一个 User 可以有多个 Pay,这样的话,只 Pay 表存在一个 `user_id` 字段即可。...跟大家说一个诀窍,`var_dump()` 以后,用 Chrome 右键 “查看源代码”,就可以看到非常整齐对象/数组展开了。...我们可以使用一个重要特性,关系预载入:http://laravel-china.org/docs/eloquent#eager-loading 直接上代码: $users = User::with('...---- 至此,深入理解 Laravel Eloquent 系列文章到此结束。推荐继续了解 软删除 、转换成数组/JSON。 END

    2.7K30

    Laravel学习记录--Model

    Laravel 自带 软删除功能 就利用全局作用域从数据库中提取「未删除」模型。编写自定义全局作用域可以提供一个方便、简单方法来确保给定模型每个查询都受到一定约束。...Eloquent还支持动态作用域,动态作用域指在查询过程动态设置预置过滤器查询条件,动态作用域与本地作用域类似,都是以scope作为前缀,调用方法也相同,不同是动态作用域可以通过额外参数指定查询条件...使用渴求式加载,即根据预先需求查询出所有数据 为了验证[渴求式加载]好处,举下列例子 这里用到了Laravel Debugbar 调试 安装方法可参照一个博客 - - - Laravel...单看这句话有点云里雾里 举个例子,一个场景你系统用户可以对文章和视频评论,使用多态关联,你只需用一个评论表(comments)即可同时满足存储视频,文章评论。...save接收一个完整Eloquent实例,而creare接收一个数组,需要注意是使用create方法需要设置$fillable允许批量添加值。

    13.6K20

    需要掌握 Laravel Eloquent 搜索技术

    本文将带领大家学习 MySQL 和 Eloquent 搜索模块设计相关技术。 基本 Eloquent Where 查询 作为首个要讲解搜索功能,我们先不涉及新知识点。... Laravel 可以使用 where 方法实现对给定字段和给定值进行比较查询,就是这样简单。 <?...即可以查询以指定字符开始结尾数据,也可以查询包含指定字符数据。模糊查询我们需要对依稀记得部分数据进行查询时非常实用。...Laravel 可以轻松执行对 JSON 数据查询,这得益于 Laravel 良好 JSON 支持。 不过深入研究之前需要注意一点是:谨记 JSON 列存储是 区分大小写 。...如你所见,我们将一个 array 给到 whereRaw 第二个参数,数组一个元素对应第一个参数绑定占位符,第二个元素对应第二个参数绑定占位符,以此类推。

    3.5K10

    【译】20个 Laravel Eloquent 小技巧(上)

    Eloquent ORM 在其表面简单易用机制背后,还有很多半隐藏功能或者少有人知方法来实现一些很有用需求。 本文中,将向您展示一些技巧。 1....模型 boot() 方法 Eloquent模型中有一个名为boot()神奇地方,您可以在其中覆盖默认行为: class User extends Model { public static...但你是否知道定义关系模型时候就已经可以增加 where 或者 orderBy 条件了?...$user = User::find(1); 很惊讶很少有人知道它可以接受多个ID作为数组: $users = User::find([1,2,3]); 7....(); } 在这个例子,在这个帖子下没有关联作者时候,author()关联关系将返回一个App\Author 模型。

    2.2K50

    3分钟短文:Laravel 模型查询数据库几个关键方法

    引言 本期继续我们laravel学习,主要说一说laravel使用eloquent orm 模型 读取数据库条目的几个常用方法。 ?...因为设计原因,laravel支持链式操作 本质上方法返回值归属于不同类。所以使用方法之前务必明确调用是哪个类那个方法,返回是什么类型数据。...eloquent门面为我们提供了很多好用链式操作方法, query builder筛选出合适条目后,返回一个eloquent collection,或者是一个 基类collection对象,可以直接使用集合方法操作数据集...如果返回是多个条目,就不能用这些方法了: $vipContacts = Contact::where('vip', true)->get(); 有一个标准方法 get,就是返回一个 eloquent...写在最后 本文主要讲了数据库查询相关内容,包括获取全量数据,获取单条数据, 分块拉取数据,以及聚合函数等,这些常规操作集合上期讲查询约束项, 基本上可以涵盖编程大多数需求了。

    2.1K40

    Laravel集合简单理解

    打回原型 如果你想将集合转换为数据,其使用方法也非常简单 微信图片_20191121144450.png 不过与考虑性能情况下,可以使用Laravel集合,毕竟它将帮你完成数组操作百分之九十工作...「键」,再将另一个数组或者集合值作为「值」合并成一个集合 concat 将给定数组集合值附加到集合末尾 contains 判断集合是否包含给定项目 count 返回该集合项目总数 dd 打印集合项目并结束脚本执行...diff 将集合与其它集合纯 PHP 数组进行值比较,然后返回原集合存在而给定集合不存在值 each 迭代集合内容并将其传递到回调函数 filter 使用给定回调函数过滤集合内容,...只留下那些通过给定真实测试内容 first 返回集合通过给定真实测试一个元素 groupBy 根据给定键对集合项目进行分组 push 把给定值添加到集合末尾 put 集合内设置给定键值对...排序后集合保留了原数组where 通过给定键值过滤集合 以上就是Laravel集合简单理解详细内容,大型PHP项目实战直播资料扫码加我获取,也可以(点击加群)获取学习资料 QQ图片20191120195111

    2.3K40

    Laravel 使用 Scout 实现全文检索

    Laravel 使用 Scout 实现全文检索 为何要采用全文检索 一个字块,可以秒级、毫秒级搜索出你搜索内容 最原先我们可以简单通过查询语句实现检索条件 比如: select * from table...where name like '%张三%'; 再或者搜索更多字段 select * from table where title like '%php&' or content like '%laravel...即使你在数据库添加了索引,还是不尽人意 因此需要一个更快、更快、更快数据查询,而 Laravel scout 就是专门为搜索来解决难题 简介 Laravel Scout 为 Eloquent...通过使用模型观察者, Scout 会自动同步 Eloquent 记录搜索索引。 目前, Scout 自带一个 Algolia 驱动。...不过,编写自定义驱动也很简单,你可以轻松通过自己搜索实现来扩展 Scout。

    4.2K10
    领券