## laravel 可用验证规则
## 可用的验证规则
下方列出了所有可用的验证规则及其功能:
Accepted
Active URL
After (Date)
After Or Equal (Date)
Alpha
Alpha Dash
Alpha Numeric
Array
Bail
Before (Date)
Before Or Equal (Date)
Between
Boolean
Confirmed
Date
Date Equals
Date Format
Different
Digits
Digits Between
Dimensions (Image Files)
Distinct
Email
Ends With
Exclude If
Exclude Unless
Exists (Database)
File
Filled
Greater Than
Greater Than Or Equal
Image (File)
In
In Array
Integer
IP Address
JSON
Less Than
Less Than Or Equal
Max
MIME Types
MIME Type By File Extension
Min
Not In
Not Regex
Nullable
Numeric
Password
Present
Regular Expression
Required
Required If
Required Unless
Required With
Required With All
Required Without
Required Without All
Same
Size
Sometimes
Starts With
String
Timezone
Unique (Database)
URL
UUID
#### accepted
待验证字段必须是*yes*,*on*,*1*或*true*。这在确认「服务条款」是否同意时很有用。
#### active\_url
根据 PHP 函数`dns_get_record`,验证字段必须具有有效的 A 或 AAAA 记录。URL 所提供的主机名时在传递给`dns_get_record`函数前使用`parse_url`函数获取到的。
#### after:*date*
待验证字段必须是给定的日期之后的值对应的日期。日期将被传递给 PHP 函数`strtotime`:
~~~php
'start_date' => 'required|date|after:tomorrow'
~~~
您亦可指定另一个要与日期比较的字段,而不是传递要由`strtotime`处理的日期字符串:
~~~php
'finish_date' => 'required|date|after:start_date'
~~~
#### after\_or\_equal:*date*
待验证字段的值对应的日期必须在给定日期之后或与给定的日期相同。可参阅[after](https://learnku.com/docs/laravel/8.x/validation/9374#rule-after)规则获取更多信息。
#### alpha
待验证字段只能由字母组成。
#### alpha\_dash
待验证字段可能包含字母、数字,短破折号(-)和下划线(\_)。
#### alpha\_num
待验证字段只能由字母和数字组成。
#### array
待验证字段必须是有效的 PHP`数组`。
#### bail
在首次验证失败后立即终止验证。
#### before:*date*
待验证字段的值对应的日期必须在给定的日期之前。日期将会传递给 PHP 函数`strtotime`。此外,与[`after`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-after)规则一致,可以将另外一个待验证的字段作为`date`的值。
#### before\_or\_equal:*date*
验证字段必须是在给定日期之前或与之相同的日期。这个日期值将会被传递给 PHP 的`strtotime`函数来计算。除此之外,像[`after`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-after)规则一样,验证中另一个字段的名称可以作为值传递给`date`。
#### between:*min*,*max*
验证字段的大小必须在给定的 min 和 max 之间。字符串、数字、数组和文件的计算方式都使用[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)方法。
#### boolean
验证的字段必须可以转换为 Boolean 类型。 可接受的输入为`true`,`false`,`1`,`0`,`"1"`和`"0"`。
#### confirmed
验证字段必须具有匹配字段`foo_confirmation`。例如,验证字段为`password`,输入中必须存在与之匹配的`password_confirmation`字段。
#### date
根据 PHP`strtotime`函数,验证的字段必须是有效的日期。
#### date\_equals:date
验证字段必须等于给定日期。日期将传递到 PHP`strtotime`函数。
#### date\_format:*format*
验证字段必须匹配给定的日期格式。当验证某个字段的时候,你应该 只使用`date`或者`date_format`,而不是同时使用。此验证规则支持 PHP 所有的[DateTime](https://www.php.net/manual/en/class.datetime.php)类。
#### different:*field*
验证的字段值必须与字段*field*的值不同。
#### digits:*value*
验证的字段必须为`numeric`,并且必须具有确切长度 \_value\_。
#### digits\_between:*min*,*max*
验证中的字段必须为`numeric`,并且长度必须在给定的*min*和*max*之间。
#### dimensions
验证的文件必须是图片并且图片比例必须符合规则:
~~~php
'avatar' => 'dimensions:min_width=100,min_height=200'
~~~
可用的规则为:*min\_width*,*max\_width*,*min\_height*,*max\_height*,*width*,*height*,*ratio*.
*ratio*约束应该表示为宽度除以高度。 这可以通过像`3/2`这样的语句或像`1.5`这样的`float`来指定::
~~~php
'avatar' => 'dimensions:ratio=3/2'
~~~
由于此规则需要多个参数,因此你可以`Rule::dimensions`方法来构造可读性高的规则:
~~~php
use Illuminate\Validation\Rule;
Validator::make($data, [
'avatar' => [
'required',
Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2),
],
]);
~~~
#### distinct
验证数组时,指定的字段不能有任何重复值。
~~~php
'foo.*.id' => 'distinct'
~~~
#### email
验证的字段必须符合`e-mail`地址格式。当前版本,此种验证规则由[`egulias/email-validator`](https://github.com/egulias/EmailValidator)提供支持。默认使用 RFCValidation 验证样式,但你也可以使其他验证样式:
~~~php
'email' => 'email:rfc,dns'
~~~
例子使用`RFCValidation`和`DNSCheckValidation`验证样式。所有可用验证样式列表:
* `rfc`:`RFCValidation`
* `strict`:`NoRFCWarningsValidation`
* `dns`:`DNSCheckValidation`
* `spoof`:`SpoofCheckValidation`
* `filter`:`FilterEmailValidation`
当下版本`filter`验证规则使用 PHP 的`filter_var`方法进行验证,在 5.8 版本接入 Laravel 。`dns`和`spoof`验证器需要 PHP 的`intl`扩展。
#### ends\_with:*foo*,*bar*,…
验证的字段必须以给定的值之一结尾。
#### exclude\_if:*anotherfield*,*value*
如果\_anotherfield\_字段等于\_value\_,验证下的字段将被`validate`和`validated`方法返回的请求数据排除。
#### exclude\_unless:*anotherfield*,*value*
验证下的字段将被`validate`和`validated`方法返回的请求数据排除,除非*anotherfield*的字段等于*value*。
#### exists:*table*,*column*
验证的字段必须存在于给定的数据库表中。
#### Exists 规则的基本用法
~~~php
'state' => 'exists:states'
~~~
如果未指定`column`选项,则将使用字段名称。
#### 指定列名
~~~php
'state' => 'exists:states,abbreviation'
~~~
如果你需要指定`exists`方法用来查询的数据库。你可以通过使用「点」语法将数据库的名称添加到数据表前面来实现这个目的:
~~~php
'email' => 'exists:connection.staff,email'
~~~
你也可以使用关联模型来指定表名。
~~~php
'user_id' => 'exists:App\Models\User,id'
~~~
如果要自定义验证规则执行的查询,可以使用`Rule`类来定义规则。在这个例子中,我们使用数组指定验证规则,而不是使用`|`字符来分隔它们:
~~~php
use Illuminate\Validation\Rule;
Validator::make($data, [
'email' => [
'required',
Rule::exists('staff')->where(function ($query) {
$query->where('account_id', 1);
}),
],
]);
~~~
#### file
验证的字段必须是成功上传的文件。
#### filled
验证的字段在存在时不能为空。
#### gt:*field*
验证字段必须大于给定的 \_field\_。两个字段必须是相同的类型。字符串、数字、数组和文件都使用[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)进行相同的评估。
#### gte:*field*
验证字段必须大于或等于给定的*field*。两个字段必须是相同的类型。字符串、数字、数组和文件都使用[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)进行相同的评估。
#### image
验证的文件必须是图片 (jpeg, png, bmp, gif, svg, or webp)
#### in:*foo*,*bar*,…
验证字段必须包含在给定的值列表中。由于此规则通常要求您`implode`数组,因此可以使用`Rule::in`方法流畅地构造规则:
~~~php
use Illuminate\Validation\Rule;
Validator::make($data, [
'zones' => [
'required',
Rule::in(['first-zone', 'second-zone']),
],
]);
~~~
#### in\_array:*anotherfield*.\*
验证的字段必须存在于另一个字段*anotherfield*的值中。
#### integer
验证的字段必须是整数。
> 注意:此种验证规则不是验证数据是 「integer」 类型,仅验证字符串或数值包含一个「integer」。
#### ip
验证的字段必须是 IP 地址。
#### ipv4
验证的字段必须是 IPv4 地址。
#### ipv6
验证的字段必须是 IPv6 地址。
#### json
验证的字段必须是有效的 JSON 字符串。
#### lt:*field*
验证的字段必须小于给定的字段。这两个字段必须是相同的类型。字符串、数值、数组和文件大小的计算方式与[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)方法进行评估。
#### lte:*field*
验证中的字段必须小于或等于给定的 字段 。这两个字段必须是相同的类型。字符串、数值、数组和文件大小的计算方式与[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)方法进行评估。
#### max:*value*
验证中的字段必须小于或等于`value`。字符串、数字、数组或是文件大小的计算方式都用[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)规则。
#### mimetypes:*text/plain*,…
验证的文件必须具备与列出的其中一个扩展相匹配的 MIME 类型:
~~~php
'video' => 'mimetypes:video/avi,video/mpeg,video/quicktime'
~~~
为了确定上传文件的 MIME,框架将会读取文件,然后自动推测文件 MIME 类型,这可能与客户端提供的 MIME 类型不一致 。
#### mimes:*foo*,*bar*,…
验证的文件必须具有与列出的其中一个扩展名相对应的 MIME 类型。
#### MIME 规则基本用法
~~~php
'photo' => 'mimes:jpeg,bmp,png'
~~~
即使你可能只需要验证指定扩展名,但此规则实际上会去验证文件的 MIME 类型,其通过读取文件内容来推测它的 MIME 类型。
可以在以下链接中找到完整的 MIME 类型列表及相对应的扩展名:[svn.apache.org/repos/asf/httpd/htt...](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)
#### min:*value*
验证字段必须具有最小值。 字符串,数值,数组,文件大小的计算方式都与[`size`](https://learnku.com/docs/laravel/8.x/validation/9374#rule-size)规则一致.
#### not\_in:*foo*,*bar*,…
验证字段不能包含在给定的值的列表中。 使用`Rule::notIn`方法可以更流畅的构建这个规则:
~~~php
use Illuminate\Validation\Rule;
Validator::make($data, [
'toppings' => [
'required',
Rule::notIn(['sprinkles', 'cherries']),
],
]);
~~~
#### not\_regex:*pattern*
验证字段必须与给定的正则表达式不匹配。
验证时,这个规则使用 PHP`preg_match`函数。指定的模式应遵循`preg_match`所需的相同格式,也包括有效的分隔符。 例如:`'email' => 'not_regex:/^.+$/i'`。
\*\*注意:\*\*当使用`regex`/`not_regex`模式时, 可能需要在数组中指定规则,而不是使用`|`分隔符 ,特别是在正则表达式包含`|`字符 的情况下。
#### nullable
验证字段可以为`null`。这在验证基本数据类型时特别有用,例如可以包含空值的字符串和整数。
#### numeric
验证字段必须为数值。
#### password
验证字段必须与当前登录用户的密码相同。你可以通过传入第一个参数来指定身份验证看守器(Authentication Guard)。
~~~php
'password' => 'password:api'
~~~
#### present
验证字段必须存在于输入数据中,但可以为空。
#### regex:*pattern*
验证字段必须与给定的正则表达式匹配。
验证时,这个规则使用 PHP 的`preg_match`函数。 指定的模式应遵循`preg_match`所需的相同格式,也包括有效的分隔符。 例如:`'email' => 'not_regex:/^.+$/i'`。
\*\*注意:\*\*当使用`regex`/`not_regex`模式时, 可能需要在数组中指定规则,而不是使用`|`分隔符 ,特别是在正则表达式包含`|`字符 的情况下。
#### required
验证的字段必须存在于输入数据中,而不是空。如果满足以下条件之一,则字段被视为「空」:
* 值为`null`。
* 值为空字符串。
* 值为空数组或空`Countable`对象。
* 值为无路径的上传文件。
#### required\_if:*anotherfield*,*value*,…
如果其它字段`_anotherfield_`为任一值(`_value1_`或`_value2_`或`_value3_`等,也可只有一个`_value1_`) ,则此验证字段必须存在且不为空。
如果您需要构造更复杂的条件`required_if`规则, 您可以使用`Rule::requiredIf`方法。这个方法可以接受一个布尔值或是一个闭包函数,当传递闭包函数时,闭包函数应该返回`true`或`false`,以表明是否需要验证此字段:
~~~php
use Illuminate\Validation\Rule;
Validator::make($request->all(), [
'role_id' => Rule::requiredIf($request->user()->is_admin),
]);
Validator::make($request->all(), [
'role_id' => Rule::requiredIf(function () use ($request) {
return $request->user()->is_admin;
}),
]);
~~~
#### required\_unless:*anotherfield*,*value*,…
如果其它字段`_anotherfield_`不等于任一值`_value_`,则此验证字段必须存在且不为空。
#### required\_with:*foo*,*bar*,…
在其他任一指定字段出现时,验证的字段才必须存在且不为空。
#### required\_with\_all:*foo*,*bar*,…
只有在其他指定字段全部出现时,验证的字段才必须存在且不为空。
#### required\_without:*foo*,*bar*,…
在其他指定任一字段不出现时,验证的字段才必须存在且不为空。
#### required\_without\_all:*foo*,*bar*,…
只有在其他指定字段全部不出现时,验证的字段才必须存在且不为空。
#### same:*field*
验证字段的值必须与给定字段的值相同。
#### size:*value*
验证字段必须与给定值的大小一致。对于字符串,value 对应字符数。对于数字,value 对应给定的整数值(attribute 必须有`numeric`或者`integer`规则)。对于数组,size 对应数组的`count`值。对于文件,size 对应文件大小(单位 kB)。让我们来看几个例子:
~~~php
// 验证字符串长度是否为 12...
'title' => 'size:12';
// 验证数字是否为 10...
'seats' => 'integer|size:10';
// 验证数组的长度(拥有的元素)是否为 5...
'tags' => 'array|size:5';
// 验证上传的文件是否为 512 kB...
'image' => 'file|size:512';
~~~
#### starts\_with:*foo*,*bar*,…
验证字段必须以给定值之一开头。
#### string
验证字段必须是一个字符串。如果允许这个字段为`null`,需要给这个字段分配`nullable`规则。
#### timezone
验证字段必须为符合 PHP 函数`timezone_identifiers_list`所定义的有效时区标识。
#### unique:*table*,*column*,*except*,*idColumn*
验证字段在给定的数据库表中必须是唯一的。
**指定自定义数据表 / 列名:**
除直接指定表名外,你也可以指定 Eloquent 模型。
~~~php
'email' => 'unique:App\Models\User,email_address'
~~~
`column`选项可用于指定相应数据库列的字段。 如果未指定`column`选项,则使用字段本身名称。
~~~php
'email' => 'unique:users,email_address'
~~~
**自定义数据库连接**
有时,你可能需要为验证器创建的数据库查询设置自定义连接。上面的例子中,将`unique:users`设置为验证规则,等于使用默认数据库连接来查询数据库。如果要对其进行修改,请使用「点」语法来指定连接和表名:
~~~php
'email' => 'unique:connection.users,email_address'
~~~
**强制 Unique 规则忽略指定 ID:**
有时,你可能希望在进行字段唯一性验证时忽略指定 ID 。例如, 在「更新个人资料」页面会包含用户名、邮箱和地点。这时你会想要验证更新的 E-mail 值是否唯一。如果用户仅更改了用户名字段而没有改 E-mail 字段,就不需要抛出验证错误,因为此用户已经是这个 E-mail 的拥有者了。
使用`Rule`类定义规则来指示验证器忽略用户的 ID 。这个例子中通过数组来指定验证规则,而不是使用`|`字符来分隔:
~~~php
use Illuminate\Validation\Rule;
Validator::make($data, [
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
~~~
> 注意:您永远不应该将任何用户控制的请求输入传递给`ignore`方法。您应该只通过`Eloquent`模型的实例来传递系统生成的唯一 ID,例如自动递增 ID 或 UUID 。否则,您的应用程序将更容易受到 SQL 注入攻击。
您可以传递整个模型实例,而不是将模型实例的主键值 传递给`ignore`方法。 Laravel 将自动从模型实例中获取主键值:
~~~php
Rule::unique('users')->ignore($user)
~~~
如果您的数据表使用的主键名称不是`id`,那就在调用`ignore`方法时指定字段的名称:
~~~php
Rule::unique('users')->ignore($user->id, 'user_id')
~~~
默认情况下,`unique`规则将检查与要验证字段名称相匹配的列的唯一性。 但是,您可以传递一个不同的列名作为`unique`方法的第二个参数:
~~~php
Rule::unique('users', 'email_address')->ignore($user->id),
~~~
**增加额外的 Where 语句:**
您也可以通过`where`方法指定额外的查询条件。例如, 我们添加`account_id`为`1`的约束:
~~~php
'email' => Rule::unique('users')->where(function ($query) {
return $query->where('account_id', 1);
})
~~~
#### url
验证的字段必须是有效的 URL。
#### uuid
验证字段必须是有效的 RFC 4122(版本 1,3,4 或 5)通用唯一标识符(UUID)。
- 在线文档收集
- 路由组
- 控制器
- laravel多站点策划
- 多站点的控制器与路由
- 多站点多主题模板
- 多站点,多数据库
- 中间件或万能路由修改配置值
- laravel程序简写规则
- 路由简写
- 控制器简写
- 后台模板简写
- 模型简写
- 手机模板
- 问题与解决
- 控制器不存在
- 模型添加修改
- 隐藏不需要查询的数据表字段
- where的in条件
- laravel查看sql语句
- 子查询操作
- laravel返回图片
- 生成二维码
- 跨域请求
- 报错 Session store not set on request
- workerman报错与解决
- 为每个请求添加日志
- Ajax跨域请求,未携带cookie的解决办法
- 分文件保存日志
- 万能路由
- 合并两个数据库查询出来的集合
- Container报错跟踪程序
- 控制器调用artisan命令
- 控制器前置与后置操作
- 多个env文件
- 笔记
- laravel 安装
- Lumen安装
- 伪静态配置
- 依赖注入 & 控制器
- laravel使用中间件
- laravel设定单独的路由文件
- 视图
- 时区不对的修改
- lumen设定单独的路由文件
- lumen使用中间件
- laravel门面路径
- 常用命令
- 网站端口设置
- laravel端口设置
- laravel和lemen中间件进行端口判读
- OctoberCms中间件进行端口判读
- Nginx设置多端口
- vscode编辑器
- 命令行操作以及workerman的使用
- 查看命令行帮助信息:3种方式
- 命令行创建修改删除命令
- 命令行参数设置
- 设置可选参数
- 命令行选项设置
- 参数与选项的区别
- 输入命令行数组参数
- 选项简写
- 获取参数
- 获取选项
- 交互询问
- 在控制台输出信息
- 控制台输出标签
- 控制台输出表格信息
- 控制台输出进度条
- 程序中调用命令
- 命令行相互调用
- 检测命令行是否执行
- 添加workerman
- 定时任务
- 外部调用命令
- 模型操作
- 时间戳
- 设置默认字段的值
- lumen支持模型
- 获取模型的数据表名称
- 模型中/添加修改过滤数据表的字段
- 数据库的创建与填充
- 创建数据表
- 数据表字段类型
- 字段示例
- 数据填充
- 数据表清空
- laravel lumen 自定义函数使用
- 表单验证
- lumen验证规则
- lumen 可用验证规则
- lumen 自定义验证规则
- laravel表单验证
- laravel 自定义验证消息
- laravel 表单验证器
- laravel可用验证规则
- laravel 自定义验证规则
- 数据库操作
- 获取数据表所有的字段信息
- 获取数据库表的字段信息
- count与distinct联合
- 集合
- 数据库查询与集合操作
- 修改方法
- map方法:处理元素项目
- each方法:处理元素项目
- map与each的区别
- flatMap方法:处理集合所有的项目
- mapWithKeys方法 遍历集合并将每个值传入给定的回调。回调应该返回包含一个键值对的关联数组
- pipe方法 将集合传给给定的回调并返回结果【或许很少使用】
- pop方法 移除并返回集合中的最后一个项目
- prepend方法 将给定的值添加到集合的开头
- pull方法 把给定键对应的值从集合中移除并返回
- push方法 把给定值添加到集合的末尾
- put方法 在集合内设置给定的键值对
- shift方法 移除并返回集合的第一个项目
- splice方法 删除并返回从给定值后的内容,原集合也会受到影响
- take方法 返回给定数量项目的新集合
- tap方法 将集合传递给回调【或许很少使用】
- transform方法 迭代集合并对集合内的每个项目调用给定的回调
- concat 方法在集合的末端附加指定的 数组 或集合值:
- eachSpread 方法用于循环集合项,将每个嵌套集合项的值传递给回调函数:
- mapInto() 方法可以迭代集合,通过将值传递给构造函数来创建给定类的新实例:
- mapSpread 方法可以迭代集合,将每个嵌套项值给指定的回调函数。该回调函数可以自由修改该集合项并返回,从而生成被修改过集合项的新集合
- mapToGroups 方法通过给定的回调函数对集合项进行分组。该回调函数应该返回一个包含单个键 / 值对的关联数组,从而生成一个分组值的新集合
- pipeInto 方法创建一个给定类的新实例,并将集合传递给构造函数
- replace 方法类似于 merge ;不过, replace 不仅可以覆盖匹配到的相同字符串键的元素,而且也可以覆盖匹配到数字键的元素:
- replaceRecursive 这个方法类似 replace ,但是会以递归的形式将数组替换到具有相同键的元素中:
- 过滤方法
- diff方法
- diffAssoc方法
- diffKeys方法
- except方法:返回排除的元素的集合
- filter方法:按一定条件过滤元素
- first方法:第一个满足添加的元素
- get方法 获取指定的元素
- intersect方法 从原集合中返回给定数组或集合中的值,最终的集合会保留原集合的键
- intersectKey方法 返回原集合中存在于给定数组或集合中的元素
- last方法 返回集合中通过给定测试的最后一个元素
- only方法 返回集合中给定键的所有项目
- reject方法 使用指定的回调过滤集合。如果回调返回 true ,就会把对应的项目从集合中移除
- search方法 搜索给定的值并返回它的键。如果找不到,则返回 false
- slice方法 返回集合中给定值后面的部分
- when方法 当传入的第一个参数为 true 的时,将执行给定的回调
- where方法 通过给定的键值过滤集合
- whereStrict方法
- whereIn方法 通过给定的键值数组来过滤集合
- whereInStrict方法
- whereNotIn方法 通过集合中不包含的给定键值对进行
- whereNotInStrict方法
- zip方法 将给定数组的值与相应索引处的原集合的值合并在一起
- firstWhere 方法返回集合中含有指定键 / 值对的第一个元素:
- skipWhile 方法当回调函数返回 true 时跳过元素,然后返回集合中剩余的元素
- takeWhile 方法将返回集合中的元素直到给定的回调函数返回 false
- unless 法当传入的第一个参数不为 true 的时候,将执行给定的回调函数
- unlessEmpty()
- unlessNotEmpty()
- 静态 unwrap 方法返回集合内部的可用元素:
- whenEmpty 方法是当集合为空时,将执行给定的回调函数:
- whenNotEmpty 方法当集合不为空时,将执行给定的回调函数:
- whereBetween 方法会筛选给定范围的集合
- whereInstanceOf 方法根据给定的类来过滤集合:
- whereNotBetween 方法在指定的范围内过滤集合
- whereNotNull 方法筛选给定键不为 NULL 的项:
- whereNull 方法筛选给定键为 NULL 的项
- 集合操作方法
- avg方法:平均值
- count方法
- max方法 返回给定键的最大值
- median方法 方法返回给定键的中间值
- min方法 返回给定键的最小值
- mode方法 返回给定键的众数值
- sum方法 返回集合内所有项目的总和
- countBy 方法计算集合中每个值的出现次数。默认情况下,该方法计算每个元素的出现次数:
- 常用方法
- all方法
- chuck方法:拆分成新集合
- combine方法:将一个数组作为键另一个数组作为值组合新数组
- collapse方法:合并成新集合
- flatten方法 将多维集合转为一维
- flip方法 将集合中的键和对应的数值进行互换
- forget方法 通过给定的键来移除掉集合中对应的内容
- forPage方法 分页展示数据
- groupBy方法 按某个元素的键的值进行分组
- keyBy方法 用指定某个键的值作为新集合的键
- implode方法 合并某个键的值
- keys方法 返回集合的所有键
- merge方法 将给定数组或集合合并到原集合
- nth方法 创建由每隔n个元素组成一个新的集合
- partition方法 可以和 PHP 中的 list() 方法结合使用,来分开通过指定条件的元素以及那些不通过指定条件的元素
- pluck方法 获取集合中给定键对应的所有值
- random方法 从集合中返回一个随机项
- reduce方法 将每次迭代的结果传递给下一次迭代直到集合减少为单个值
- reverse方法 倒转集合中项目的顺序
- shuffle方法 随机排序集合中的项目
- sort方法 对集合进行排序
- sortBy方法 以给定的键对集合进行排序
- sortByDesc方法 与 sortBy 方法一样,但是会以相反的顺序来对集合进行排序
- split方法 将集合按给定的值拆分
- times方法 通过回调在给定次数内创建一个新的集合
- toArray方法 将集合转换成 PHP 数组
- toJson方法 将集合转换成 JSON 字符串
- union方法 将给定的数组添加到集合中
- unique方法 返回集合中所有唯一的项目
- uniqueStrict方法
- values方法 返回键被重置为连续编号的新集合
- chunkWhile 方法根据指定的回调值把集合分解成多个更小的集合:
- crossJoin 方法交叉连接指定数组或集合的值,返回所有可能排列的笛卡尔积:
- duplicates 方法从集合中检索并返回重复的值:
- duplicatesStrict()
- join 方法会将集合中的值用字符串连接:
- mergeRecursive 方法以递归的形式合并给定的数组或集合到原集合中,如果给定集合项的字符串键与原集合的字符串键一致,则会将给定的集合项的值以递归的形式合并到原集合的相同键中
- pad 方法将使用给定的值填充数组,直到数组达到指定的大小
- skip 方法返回除了给定的元素数目的新集合:
- skipUntil 方法将跳过元素直到给定的回调函数返回 true,然后返回集合中剩余的元素
- sortKeys 方法通过底层关联数组的键来对集合进行排序:
- sortKeysDesc 该方法与 sortKeys 方法一样,但是会以相反的顺序来对集合进行排序。
- splitIn 方法将集合分为给定数量的组,在将其余部分分配给最终组之前,完全填充非终端组:
- takeUntil 方法将返回集合中的元素,直到给定的回调函数返回 true
- wrap 方法会将给定值封装到集合中
- 判断元素是否存在
- contains方法:判断指定的元素是否存在
- containsStrict方法:严格判断指定元素是否存在
- every方法:验证集合中每一个元素都通过给定测试
- has方法 判断键值是否存在
- isEmpty() 如果集合为空, isEmpty 方法返回 true ,否则返回 false :
- isNotEmpty() 如果集合不为空,isNotEmpty 方法返回 true ,否则返回 false :
- 问题与技巧
- 两个集合合并concat
- 队列消息
- 执行步骤
- 队列消息常用命令
- 创建队列消息
- 队列程序中常用参数
- 执行流程
- 一篇文章带你彻底搞懂 Laravel 框架的底层运行原理!!!