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

Laravel 集合 Collection

empty($name); }); 上面的列子可以看出,Collection 类允许你链式调用其方法,以达到底层数组优雅地执行 map 和 reject 操作。...也就是说,创建一个集合就这么简单: $collection = collect(['php', 'redis', 'laravel']); 默认情况下, EIoquent查询结果返回内容都是 Collection...**而且,几乎所有的方法都会返回 Collection 实例,允许你必要时保存集合原始副本。 #1.all方法,该方法返回该集合表示底层数组。...#21.forPage方法,返回给定页码显示项目的新集合。这个方法接受页码#作为其第一个参数和每页显示项目数作为其第二个参数。...如果多个项目具有相同键,则只有最后一个项目显示新集合中。

5.6K20

3分钟短文:Laravel模型集合跟基类真不一样,别混为一谈

引言 laravel功能拆分上相当灵活,其中查询返回数据集,虽然继承了基类集合, 但是有一些特定方法和用法。很多小白时候,往往分不清到底是用哪个类哪个方法,导致凭空报错。...代码时间 laravel系统基类就是 Illuminate\Support\Collection,同时提供了一个快捷助手函数collect 用于实例化一个集合类。...该助手函数代码很简单,就是new一个对象: new Collection($value); 比如有一个数组,将其实例化为一个集合类: $collection = collect([1, 2, 3]);...比如将上述数组内所有的偶数剔除掉: $odds = $collection->reject(function ($item) { return $item % 2 === 0;}); reject...对于集合序列化操作,其实有很标准写法,比如 toArray toJson这些方法, 可以返回数据集对象直接调用: $contactArray = Contact::first()->toArray

1K40
您找到你想要的搜索结果了吗?
是的
没有找到

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

laravel/framework/src/Illuminate/Database/Eloquent/Collection.php 对象,然后这个对象里面有个 items 属性,是一个数组。...而另外一个 map() 函数就不用多说了,之前我们说过,Laravel PDO 默认查询构造器情况下,走是 PDO::FETCH_OBJ ,获得集合结果中每个数据都是一个 stdClass...对象,而在 Model 下,走则是 PDO::FETCH_CLASS ,也就是和我们指定模型类关联,获得结果都是一个 App\Models\MTest Object 对象。...toArray() 方法一个递归方法,它会将所有的属性和关联(包括关联关联)都转化成数组。而 attributesToArray() 只会将当前模型属性转化为数组。...getConnection() 返回一个之前讲过工厂方法创建 Connection 对象,而 query() 方法则会根据 Connection 创建一个 QueryBuilder 对象。

2.8K20

Laravel框架集合用法实例浅析

创建集合 $collection = collect([1, 2, 3]); 显而易见,这是一部非常简单操作,请打住你想说“这种操作很复杂”的话,它更类似与早起PHP5.x版本声明方式。...,其使用方法也非常简单 collect([1, 2, 3])- all(); ------ [1, 2, 3] 不过与考虑性能情况下,可以使用Laravel集合,毕竟它将帮你完成数组操作百分之九十工作...方法 注释 all 将集合打回原型 average & avg 计算平均值 chunk 将集合拆成多个指定大小小集合 collapse 将多个数组集合合并成一个数组集合 combine 可以将一个集合值作为...「键」,再将另一个数组或者集合值作为「值」合并成一个集合 concat 将给定数组或集合值附加到集合末尾 contains 判断集合是否包含给定项目 count 返回该集合内项目总数 dd 打印集合项目并结束脚本执行...只留下那些通过给定真实测试内容 first 返回集合中通过给定真实测试一个元素 groupBy 根据给定键对集合内项目进行分组 push 把给定值添加到集合末尾 put 集合内设置给定键值对

2.2K10

你可能需要了解下Laravel集合

创建集合 $collection = collect([1, 2, 3]); 显而易见,这是一部非常简单操作,请打住你想说“这种操作很复杂”的话,它更类似与早起PHP5.x版本声明方式。...,其使用方法也非常简单 collect([1, 2, 3])->all(); ------> [1, 2, 3] 不过与考虑性能情况下,可以使用Laravel集合,毕竟它将帮你完成数组操作百分之九十工作...方法 注释 all 将集合打回原型 average & avg 计算平均值 chunk 将集合拆成多个指定大小小集合 collapse 将多个数组集合合并成一个数组集合 combine 可以将一个集合值作为...「键」,再将另一个数组或者集合值作为「值」合并成一个集合 concat 将给定数组或集合值附加到集合末尾 contains 判断集合是否包含给定项目 count 返回该集合内项目总数 dd 打印集合项目并结束脚本执行...只留下那些通过给定真实测试内容 first 返回集合中通过给定真实测试一个元素 groupBy 根据给定键对集合内项目进行分组 push 把给定值添加到集合末尾 put 集合内设置给定键值对

1.6K30

Laravel集合简单理解

微信图片_20191121144135.png laravel对于collection也没有做任何复杂事情。...打回原型 如果你想将集合转换为数据,其使用方法也非常简单 微信图片_20191121144450.png 不过与考虑性能情况下,可以使用Laravel集合,毕竟它将帮你完成数组操作百分之九十工作...方法 注释 all 将集合打回原型 average & avg 计算平均值 chunk 将集合拆成多个指定大小小集合 collapse 将多个数组集合合并成一个数组集合 combine 可以将一个集合值作为...「键」,再将另一个数组或者集合值作为「值」合并成一个集合 concat 将给定数组或集合值附加到集合末尾 contains 判断集合是否包含给定项目 count 返回该集合内项目总数 dd 打印集合项目并结束脚本执行...只留下那些通过给定真实测试内容 first 返回集合中通过给定真实测试一个元素 groupBy 根据给定键对集合内项目进行分组 push 把给定值添加到集合末尾 put 集合内设置给定键值对

2.3K40

3分钟短文:Laravel模型一对一一对多关系真的乱吗?

,我们先查找到手机号,然后使用关联函数返回Contact模型: $contact = $phoneNumber->contact; laravel还有一个高级用法,关联插入新条目。...我们只需关联关系基础,链式调用save方法,传入一个关联模型实例。如果要写入多条,就传入一个 关联模型实例数组。...,调用模型create方法,传入一个数组,用于新建: $contact->phoneNumbers()->create(['number' => '123123123']); 有了一对一铺垫,我们理解一对多就简单多了...->hasMany(Contact::class); }} 那么使用链式调用关联关系方法是,返回就是一个 Eloquent Collection,例如: $user = User::first...写在最后 本文通过常用用户,通讯录,订单,手机号等模型数据,演示了laravel模型一对一一对多 关联使用方法。 Happy coding :-)

2K30

Laravel Eloquent 模型关联关系(下)

另外,如果访问是模型实例 author() 方法时,返回不是用户实例了,而是一个关联关系实例,该实例注入了查询构建器,所以你可以在其基础通过方法方式构建查询构建器进行更加复杂查询,我们以一个一对多查询为例...统计关联模型 我们还可以通过 Eloquent 提供 withCount 方法不加载关联模型情况下统计关联结果数量。...Eloquent 允许我们为这种空对象定义一个默认类型,这个对象类型可以定义关联关系时候指定: public function author() { return $this->belongsTo...这样,我们就不需要在每个地方去判断如果文章作者信息为空该如何处理了,因为这种情况下返回也是一个正常 User 模型实例。...有时候,你可能仅仅是想要更新中间表字段值,这个时候,可以通过 updateExistingPivot 方法第二个参数中将需要更新字段值以关联数组方式传递过去: $post->tags()->updateExistingPivot

19.5K30

Laravel5.7 Eloquent ORM快速入门详解

时间戳 默认情况下,Eloquent 期望 created_at 和 updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理数据列,模型类中设置 $timestamps...集合 对 Eloquent 中获取多个结果方法(比如 all 和 get)而言,其返回值是 Illuminate\Database\Eloquent\Collection 一个实例,Collection...这是因为进行批量更新时并没有从数据库获取模型。 批量赋值 还可以使用 create 方法保存一个模型。该方法返回被插入模型实例。...create 方法返回保存后模型实例: $flight = App\Flight::create(['name' = 'Flight 10']); 如果你已经有了一个模型实例,可以使用 fill 方法通过数组属性来填充...,Laravel 提供了一个 updateOrCreate 方法来一步完成。

15K41

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

Laravel 提供了一些超赞组件,在我看来,它是目前所有 Web 框架中提供组件支持最好一个。...我们代码从 20 行变成了 6 行。现在代码不仅顺畅不少,并且方法实现时无需借助注释告诉我们它们处理什么问题。 不过,还存在一个问题阻止我们代码不如完美阶段......让我们添加一个方法它会连接由数组提供任意数量字段并返回字符串结果: Collection::macro('toConcatenatedString', function ($fields = [],...需要注意是,通过使用 Collection 类,您不仅可以获得一个方法库来简化编程工作,还可以选择一种从根本改善代码方法。...查看官方文档获取更多这个迷人类库使用细节:https://laravel.com/docs/collections 提示: 你还可以获取这个 Collection 类独立安装包,使用非 laravel

2.1K20

Laravel学习记录--Model

,上述方法我们通过学生id获取其选修课程,现在通过课程id查询选修学生 Mclass模型中定义一个stus方法,这个方法还是调用belongsToMany();并返回值 如: //获取选修此课程学生...Eloquent提供了便捷方法将新模型增加至关联中,如你需要为一个Muser模型插入一个Phone,这时你无须为Phone手动设置musers属性,直接在关联使用save方法插入Phone即可...空对象模型 如果外键字段uid允许为空,当我们访问Phone模型muser属性(注意这里是属性,而不是方法)时,默认返回null,Eloquent允许我们为这种空对象定义一个默认类型,这个对象类型定义关联时指定...,在这里没有被放在数组id从中间表移除。...,使用updateExistingPivot方法方法接受中间记录另一个外键和一个关联数组进行更新 public function show(){ $stu = Stu::find(

13.4K20

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

中文文档: http://laravel-china.org/docs/eloquent#relationships 下面我们开始一个一个地学习。...\Collection` 类一个实例。...跟大家说一个诀窍,`var_dump()` 以后,用 Chrome 右键 “查看源代码”,就可以看到非常整齐对象/数组展开了。...其他关系 Eloquent 还提供 “远层一对多关联”、“多态关联” 和 “多态多对多关联” 这另外三种用法,经过上面的学习,我们已经掌握了 Eloquent 模型间关系基本概念和使用方法,剩下几种不常用方法就留到我们用到时候再自己探索吧...---- 至此,深入理解 Laravel Eloquent 系列文章到此结束。推荐继续了解 软删除 、转换成数组/JSON。 END

2.6K30

具有嵌套关系可重用API资源——Laravel5.5

尤其强调了利用 Resource::collection 方法简化数据提供过程,以及对比 Fractal 和 Laravel 资源处理方式。...这个命令Laravel 官方存储库中下载最新版本 Laravel 5.5 代码并安装到名为 "responses" 文件夹中。...也就是 app 目录下 User.php 文件中,你定义用户和posts之间关联关系,比如一对多关系(一个用户有多个posts)或其他关系。· 避免批量赋值app/Post.phppaginate());}静态collection方法将采用要转换记录集合,并确保为每个记录实例化一个UsersResource。...这样做有利于避免 N+1 查询问题(获取关联数据时出现效率问题),同时可以使用单个资源类处理不同情况。如果关联数据不可用,资源类忽略它;反之,如果可用,资源类会将其包含在返回数据中。

11210

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

自定义属性排序 假设你有下面的一段代码: (设定了一个返回对象时候附加属性 ‘full_name’参见 tips5 模型属性: 时间戳, 附加属性(appends) 等) function getFullNameAttribute...但是查询返回都是一个 Collection 对象,Laravel 为集合提供了很多方便操作方法,sortBy 就是其中一个,当然还可以用 filter 等集合操作) 12....就是对 DB 查询对象一个封装,所以可以用在 DB 原始查询方法,都可以用在继承自 Eloquent model 对象。)...Laravel 默认会给所有实体类配置时间戳,如果不需要一般是模型中指定 $timestamps = false 18. update()方法返回值是什么?...最后一条,你可以个 orWhere 方法传递一个数组

2.8K10

【译】深入研究 Laravel 依赖注入容器

注意: 如果你读了官方文档,它使用 $this->app代替 $container (Laravel应用程序中,它实际是Container一个子类,称为Application这就是为什么称为助手...()); (除了 AnotherClass他自己一些依赖关系,在这种情况下Container将递归实例化它们,直到没有更多) 实例 以下是一个基于PHP-DI docs更实用示例,将邮件功能与用户注册分离...为什么忽略参数,请参阅PR 上下文绑定 有时候你想在不同地方使用不同接口实现,下面是Laravel 文档中一个例子: $container ->when(PhotoController::...Laravel 5.5 可能 恢复到Laravel 5.3 语法._ 其他方法 这里涵盖了我认为有用所有方法,但只是为了整理一些内容。...,以便在其执行时注册他依赖关系,wrap方法接收一个数组参数,返回闭包不带参数: $cacheGetter = function (Cache $cache, $key) { return

4.6K70

laravel 学习之路 Collections

这就要了解下 Collections 对象, laravelcollection 是比数组更高等般存在,我们可以像对待数组一样来操作 collection,而且它还能以链式操作方式便捷易读处理数据...操作再复杂点都用函数一层一层套的话就很崩溃了还是链式操作即直观又美观,为什么laravel 便是如此咯。 collection 其实有一大堆功能可以供我们使用 ?...回到刚刚的话题由于从数据库取出数据本身就是一个 collection 所以可以直接使用这些方法 function getCollectData(){ $titles = DB:...up 17年刚刚接触 laravel 时候不知道 collection 是个啥,只知道数组数据库查出来时候都懵逼了百度半天才知道 ->toArray() 可以把 collection 转成数组,每次都是转成数组玩...直到后来同事吐槽我,我才知道 collection 强大。

77130

Laravel系列4.6】

没错,最后 fetch() 时候,其实还可以设置 FETCH_MODE ,而且这个地方设置结果影响最终返回内容。那么我们就深入源码看一下是不是这样。...如果你去网上搜索如何让 Laravel 返回结果变成数组的话,那么大部分都会给出下面这段代码。...事件,就是要有一个注册,然后另外一个地方监听,当注册对象内容发生变化时候,可以通过监听这边方法来对事件内容进行处理。关于 Laravel 事件内容,我们将在后面的文章中进行详细学习。...这个时候又来了一个问题,貌似所有的连接都被修改成这种形式了,但是我之前代码已经写成对象形式了,能不能单独针对某一个连接配置修改呢?...另外还需要注意一点是,Model 查询结果如果使用了 toArray() 的话,返回数据直接就是数组格式为什么呢?

1.3K30
领券