## 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 框架的底層運行原理!!!