Laravel 集合的使用 集合的常用方法 模型的数据集合 ⑩

news2025/1/27 13:11:07

请添加图片描述

@作者 : SYFStrive

 
请添加图片描述

@博客首页 : HomePage

📜: THINK PHP

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗


请添加图片描述
相关专栏

👉 VUEJS(🔥)
👉 MYSQL(🔥)
👉 微信小程序(🔥)
👉 PHPMYSQL(🔥)
👉 UNIAPP开发(🔥)

目录

  • PHP LARAVEL 简介
  • PHP LARAVEL 集合的使用
  •    创建集合 & 简单使用
  • PHP LARAVEL 集合的常用方法
  •    常用方法
  • PHP LARAVEL 模型的数据集合
  •    模型数据集合
  • 最后


                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   

提示:以下是本篇文章正文内容

PHP LARAVEL 简介

  • Laravel是一种流行的开源PHP Web应用程序框架,由Taylor Otwell在2011年创建并发布。它提供了一个简洁优雅的语法和丰富的功能集,旨在使Web开发过程更快速、简单和愉悦。
  1. MVC架构模式:Laravel采用了MVC(Model-View-Controller)架构模,将应用程序的逻辑分为不同的层,提高了代码的可维护性和可测试性。

  2. 简洁的语法和表达力:Laravel框架支持具有简洁而表达力的语法,使得编写清晰、易读、易维护的代码成为可能。

  3. 路由系统:它提供了一个强大且灵活的路由系统,通过简单的配置和代码即可定义Web应用程序的路由规则,实现URL到控制器的映射。

  4. 数据库抽象层:Laravel提供了一个简便的数据库抽象层,支持多种数据库系统,并通过Eloquent ORM提供了一种优雅的方法来与数据库进行交互。

  5. 权限和认证系统:Laravel提供了内置的身份验证和授权功能,使得实现用户身份验证、访问控制和权限管理变得简单和便捷。

  6. 缓存系统:Laravel支持多种缓存后端,包括文件、数据库、Memcached和Redis等,让你可以轻松地实现缓存数据,提升应用程序的性能。

  7. 强大的扩展性:Laravel通过Composer和Packagist等工具提供了丰富的扩展包生态系统,可以快速集成各种功能组件和第三方库,加快开发进程。

  8. 测试支持:Laravel鼓励编写和运行测试,提供了一套丰富的测试工具和断言,帮助开发者确保代码的质量和可靠性。

  • 总的来说,Laravel框架以其易用性、优雅的语法、丰富的功能和强大的扩展性受到了广大开发者的喜爱。它提供了

PHP LARAVEL 集合的使用

   创建集合 & 简单使用

  1. 什么是集合?👉 它是一种更具读取性和处理能力的数组封装;
  2. 比如,我们从数据库得到的数据列表,它就是一种集合;
  3. 数据集合,提供了大量的方法方便我们进行各种操作;
  4. 除了数据库对象返回的数据集合之外,我们还可以自行创建数据集合;
//创建一个数据集合
$collection = collect(['张三', '李四', '王五', null,null]);
//使用 dd 查看它的类型
dd($collection);
//直接 return 可以返回
return $collection;
  1. 数据集合提供了大概有100多个处理数据集合的方法,可链式调用;
  2. 常见的集合方法
//以底层数组形式输出
return $collection->all();
//map 方法,类似访问器,可修改输出
return $collection->map(function ($value, $key) {
    return $key . '[' . $value . ']';
});
//支持链式,reject 移出非 true 的值
return $collection->reject(function ($value, $key) {
    return $value === null;
})->map(function ($value, $key) {
    return $key . '[' . $value . ']';
});
//filter 筛选为 true 的值,和 reject 相反
return $collection->filter(function ($value, $key) {
    return $value === null;
});

//search 找到后返回 key,找不到返回 false
return $collection->search('王五');
//集合的分割
return $collection->chunk(2);
//迭代输出
$collection->each(function ($item, $key) {
    echo $item;
});
  1. 自定义方法,比如说所有英文大写;
$collection = collect(['Mr.Zhang', '李四', '王五', null]);
Collection::macro('toUpper', function () {
    return $this->map(function ($value) {
        return strtoupper($value);
    });
});
return $collection->toUpper();

PHP LARAVEL 集合的常用方法

   常用方法

  1. all()方法,转换为属性形式输出,使用 dd 方法看类型;
$collection = collect([1, 2, 2, 3, 4, 4, 4]);
dd($collection->all());
PS$collection->dd()方法可以以 dd()模式输出,还有 dump()模式;
  1. avg()方法返回平均值;
//返回平均值
$collection = collect([1, 2, 3, 4]);
return $collection->avg();
//返回分组平均值
$collection = collect([['男'=>1], ['女'=>1], ['男'=>3]]);
return $collection->avg('男');
  1. count()方法返回集合总数;
return $collection->count();
PS:相关的还有 sum()min()max()等统计;
  1. countBy()方法返回数值出现的次数或回调函数指定值出现的次数;
//值出现的次数
$collection = collect([1, 2, 2, 3, 4, 4, 4]);
return $collection->countBy();
//回调搜索相同指定片段的值的次数
$collection = collect(['xiaoxin@163.com', 'yihu@163.com', 'xiaoying@qq.com']);
return $collection->countBy(function ($value) {
return substr(strrchr($value, '@'), 1);
});
PS:相关的还有 groupBy()keyBy()方法;
  1. diff()方法返回集合数组之间不相同的部分,组合新的集合;
//diff 返回两个集合中不相同的
$collection = collect([1, 2, 3, 4, 5]);
return $collection->diff([3]);
PS:其中还有 diffAssoc()diffKeys()派生方法;
  1. duplicates()返回重复的值;
$collection = collect([1, 2, 2, 3, 4, 5, 5, 6]);
return $collection->duplicates(); //严格派生方法:duplicatesStrict()
  1. first()返回成立后的第一个值
//返回判断成立的第一条数值
$collection = collect([1, 2, 3, 4]);
return $collection->first(function ($value) {
return $value > 2;
});
PS:相关的还有 every()except()only()firstWhere()last()等方法;
  1. flatten()将多维数组转换为一维;
$collection = collect(['name'=>'Mr.Lee','details'=>['gender'=>'男', 'age'=>100]]);
return $collection->flatten();
  1. get()通过键名找值;
$collection = collect(['name'=>'Mr.Lee', 'gender'=>'男']);
return $collection->get('name');
PS:相关的还有 pluck()等;
  1. has()判断集合中是否存在指定键
return $collection->has('name');
  1. pop()移出集合中最后一个值;
$collection = collect([1, 2, 3, 4, 5]);
//$collection->pop();
return $collection;
PS:相关的还有 pull()push()put()方法;
  1. slice()返回指定值后续的集合;
$collection = collect([1, 2, 3, 4, 5]);
return $collection->slice(3);
PS:相关的还有 splice()等方法;
  1. sort()返回指定值后续的集合;
$collection = collect([3, 1 , 5, 2, 7]);
return $collection->sort()->values(); //需要配合 values()方法
PS:相关的有 sortBy()sortByDesc()sortKeys()等;
  1. where()系列方法,和数据库条件一样;
$collection = collect([
	['name'=>'Mr.Lee', 'gender'=>'男'],
	['name'=>'Miss.Zhang', 'gender'=>'女']
]);
return $collection->where('name', 'Mr.Lee');

PHP LARAVEL 模型的数据集合

   模型数据集合

  1. 数据集合,就是已经将模型方法 get() 获取到的数据再进行处理;
  2. 比如:map()方法,通过它可以实现类似访问器一样对字段进行处理的效果;
$users = User::get();
//使用集合方法 map 可以对输出的字段进行过滤
$women = $users->map(function ($user) {
	$user->email = strtoupper($user->email);
	return $user;
});
return [$women];
PS:数据集合支持连缀操作,和数据库连缀一样;
  1. 使用 reject()方法,可以获取条件之外的数据内容;
$women = $users->reject(function ($user) {
	return $user->gender != '女';
})->map(function ($user) {
	return $user;
});
  1. 下面列出常用的集合方法列表:
//判断集合中是否包含指定的模型实例
return $users->contains(19);
return $users->contains(User::find(19));
//返回不在集合中的所有模型
return $users->diff(User::whereIn('id', [19,20,21])->get());
//返回给定主键外的所有模型
return $users->except([19,20,21]);
//集合也有 find 方法
return $users->find(19);
//返回集合的数量
return $users->count();
//返回所有模型的主键
return $users->modelKeys();
//返回主键的所有模型
return $users->only([19,20,21]);
//返回集合中的唯一模型
return $users->unique();

最后

以上是个人学习 THINKPHP 的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/965240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】文件

Linux 文件 什么叫文件C语言视角下文件的操作文件的打开与关闭文件的写操作文件的读操作 & cat命令模拟实现 文件操作的系统接口open & closewriteread 文件描述符进程与文件的关系重定向问题Linux下一切皆文件的认识文件缓冲区缓冲区的刷新策略 stuout & stderr 什…

学信网学历电子注册备案表 下载方法

如果你需要成人高考的专升本 那么就会需要 学信网学历电子注册备案表 全称叫 教育部学历证书电子注册备案表 是学信网依托全国高等教育学生信息数据库,对学生的学历信息提供的在线验证报告,是我们验证学历真伪的一份报告 学历电子注册备案表在 考研、考…

shell脚本中时间的编写规范20230902

背景:经常写shell,但是很多种时间格式规范真是记不住哈,😄,索性记录一下 一、 获取-年 下面的这两种写法都成 year$(date "%Y") yeardate "%Y"echo -e "测试输出 年: ${year}"输出结…

springboot web开发springmvc自动配置原理

前言 我们也知道springboot启用springmvc基本不用做什么配置可以很方便就使用了但是不了解原理,开发过程中遇到点问题估计就比较头疼,不管了解的深不深入,先巴拉一番再说… 下面我们先看看官网…我的版本是2.3.2版本,发现官网改动也比较大…不同版本自己巴拉下吧,结构虽然变化…

PMD代码检查:过长的变量名字(LongVariable)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_codestyle.html#longvariable 属性、正式变量、局部变量的名字如果太长,会使代码难理解。例如,下面的代码报违反项: 可以通过属性minimum配置报违反规则的最小长度(默…

qt.qpa.plugin:找不到Qt平台插件“wayland“|| (下载插件)Ubuntu上解决方案

相信大家也都知道这个地方应该做什么,当然是下载这个qt平台的插件wayland,但是很多人可能不知道怎么下载这个插件。 那么我现在要说的这个方法就是针对这种的。 sudo apt install qtwayland5完事儿了奥兄弟们。 看看效果 正常了奥。

总结ADX指标交易的好处

股神巴菲特从一个穷小子变成世界富豪,而闻名世界。anzo capital昂首资本以为这辈子再也不会和巴菲特产生任何交集,直到我看了巴菲特的发家史,才发现原来我们都使用过ADX指标盈利过,下面anzo capital昂首资本就总结一下使用ADX指…

如何大批量、低成本获取精准客户

身为一个企业或广告投放的决策人,当你在做每一次营销决策的时候,一定会回答一个问题:如何把产品卖给对的人? 目前经济形势下,消费活跃,但是获客却越来越难,在大数据弥漫的今天,我们仿…

leetcode 1365. 有多少小于当前数字的数字

2023.9.2 本题直观的解法就是双层for循环暴力求解&#xff1a; 暴力解&#xff1a; class Solution { public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<int> ans;for(int i0; i<nums.size(); i){int temp 0;//比当前元素…

如何确认linux的包管理器是yum还是apt,确认之后安装其他程序的时候就需要注意安装命令

打开终端 输入apt&#xff0c;下图中提示未找到命令&#xff0c;则基本上包管理工具就是用yum的 输入yum&#xff0c;我们看到有打印信息&#xff0c;则说明包管理工具是yum的&#xff0c;离线安装命令使用rpm

kafka详解二

kafka详解二 1、 offset 1.1 offset介绍 老版本 Consumer 的位移管理是依托于 Apache ZooKeeper 的&#xff0c;它会自动或手动地将位移数据提交到 ZooKeeper 中保存。当 Consumer 重启后&#xff0c;它能自动从 ZooKeeper 中读取位移数据&#xff0c;从而在上次消费截止的地…

中国地方ZF数据开放指数(省域指数、城市指数)

“中国开放数林指数”是我国首个专注于评估政府数据开放水平的专业指数&#xff0c;由复旦大学数字与移动治理实验室制作出品。开放数据&#xff0c;蔚然成林&#xff0c; “开放数林”意喻我国政府数据开放利用的生态体系&#xff0c;一棵棵地方开放“数木”由最初的丛然并生、…

postgres源码解析54 Brin Index--1

Brin Index简介 brin index是Block range Index的缩写&#xff0c;顾名思义该索引是指块范围索引&#xff0c;该索引适合在超大表中进行过滤性扫描。基本的思路是追踪heap页域的最大值与最小值&#xff0c;用于过滤不符合条件的数据块。以下图为例&#xff0c;右边的堆表包含三…

ARM编程模型-寄存器组

Cortex A系列ARM处理器共有40个32位寄存器,其中33个为通用寄存器,7个为状态寄存器。usr模式和sys模式共用同一组寄存器。 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7分组寄存器R8~R14、R13(SP) 、R14(LR)程序计数器PC(R15)、R8_fiq-R12_fir为快中断独有 在不同模…

VITIS编译启动文件

source /home/wj/xilinx/PetaLinux/2021.1/tool/settings.sh source /home/wj/xilinx/Vitis/2021.1/settings64.sh source /home/wj/xilinx/Vivado/2021.1/settings64.sh 0 层 eng/home/wj/ETHERCAT_DW/meta-adi/meta-adi-core 1 层 /home/wj/ETHERCAT_DW/meta-adi/meta-ad…

【算法竞赛宝典】插入排序

【算法竞赛宝典】插入排序 题目描述伪代码代码展示代码讲解 题目描述 伪代码 代码展示 //插入排序数,请自己根据例程修改 #include <iostream>using namespace std;int main() {int a[11] {1, 4, 6, 9, 13, 16, 19, 28, 40, 100};int temp1, temp2, number, end, i, j…

go学习part20(3)反射细节

1.Set函数的细节 错误示范 正确示范:传指针再调用Elem() 2.反射的高级用法 1&#xff09;方法调用&#xff08;传参和返回值都是Value&#xff09; 方法顺序i是按照方法名字的顺序来计算&#xff0c;比较ascii码 2)结构体字段数 3)value.Field&#xff08;i&#xff09;获取…

MPI之虚拟进程拓扑

什么是虚拟进程拓扑 在很多并行应用进程中&#xff0c;进程的线性排列不能充分的反映进程间在逻辑上的通信模型&#xff0c;通常由问题几何和所用的算法决定&#xff0c;进程经常被排列成二维或者三维网络形式的拓扑模型而通常用一个图来描述逻辑进程排列&#xff0c;此种逻辑…

百度搜索清理大量低质量网站

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 据部分站长爆料&#xff1a;百度大规模删低质量网站的百度资源站长平台权限&#xff0c;很多网站都被删除了百度站长资源平台后台权限&#xff0c;以前在百度后台添加的网站大量被删除&#xff01;…

在Mac上安装及使用 dubbo-go

目录 dubbo-go 是什么dubbo-go 快速入门环境安装&#xff08;Mac 系统&#xff09;安装 Go语言环境安装 序列化工具protoc安装 dubbogo-cli 以及相关插件解决报错&#xff1a;zsh: command not found: protoc-gen-go&#xff0c;而其他两个工具都能正常输出版本号信息。 完成依…