資料介紹
軟件簡(jiǎn)介
微擎表單驗(yàn)證是一個(gè)讓你的表單驗(yàn)證更為方便,快捷,安全的擴(kuò)展,滿足你的一切驗(yàn)證需求。
中文 | English
目錄
- 驗(yàn)證器
- 驗(yàn)證場(chǎng)景
- 場(chǎng)景事件
- 規(guī)則管理器
- 內(nèi)置規(guī)則
- 自定義驗(yàn)證規(guī)則
- 自定義消息
- 默認(rèn)值
- 過濾器
- 驗(yàn)證集合
安裝
使用composer命令
composer require w7/engine-validate
完整文檔查看完整文檔
簡(jiǎn)單驗(yàn)證
支持簡(jiǎn)單定義一個(gè)驗(yàn)證器并進(jìn)行驗(yàn)證:
try {
$data = Validate::make([
'user' => 'required|email',
'pass' => 'required|lengthBetween:6,16',
], [
'user.required' => '請(qǐng)輸入用戶名',
'user.email' => '用戶名格式錯(cuò)誤',
'pass.required' => '請(qǐng)輸入密碼',
'pass.lengthBetween' => '密碼長(zhǎng)度為6~16位',
])->check($data);
} catch (ValidateException $e) {
echo $e->getMessage();
}
如果驗(yàn)證通過,則返回所有通過驗(yàn)證的值,如未通過,則拋出一個(gè)W7\\Validate\\Exception\\ValidateException異常
驗(yàn)證器定義
為具體的驗(yàn)證場(chǎng)景或者數(shù)據(jù)表單定義驗(yàn)證器類,我們需要繼承W7\\Validate\\Validate類,然后實(shí)例化后直接調(diào)用驗(yàn)證類的check方法即可完成驗(yàn)證,下面是一個(gè)例子:
我們定義一個(gè)LoginValidate驗(yàn)證器類用于登錄的驗(yàn)證。
class LoginValidate extends Validate
{
protected $rule = [
'user' => 'required|email',
'pass' => 'required|digits_between:6,16',
];
protected $message = [
'user.required' => '請(qǐng)輸入用戶名',
'user.email' => '用戶名格式錯(cuò)誤',
'pass.required' => '請(qǐng)輸入密碼',
'pass.digits_between' => '密碼長(zhǎng)度為6~16位',
];
}
類屬性定義的錯(cuò)誤消息,優(yōu)先級(jí)要高于自定義規(guī)則中的默認(rèn)回復(fù),高于自定義規(guī)則方法返回的錯(cuò)誤
數(shù)據(jù)驗(yàn)證
$data = [
'user' => '123@qq.com',
'pass' => ''
];
$validate = new LoginValidate();
$validate->check($data);
此時(shí)會(huì)拋出一個(gè)W7\\Validate\\Exception\\ValidateException異常,message為請(qǐng)輸入密碼
$data = [
'user' => '123@qq.com',
'pass' => '123456'
];
$validate = new LoginValidate();
$data = $validate->check($data);
驗(yàn)證成功,并返回通過驗(yàn)證的值,返回的值為數(shù)組類型
驗(yàn)證數(shù)組
驗(yàn)證表單的輸入為數(shù)組的字段也不難。你可以使用 「點(diǎn)」方法來(lái)驗(yàn)證數(shù)組中的屬性。例如,如果傳入的 HTTP 請(qǐng)求中包含search[keyword]字段, 可以如下驗(yàn)證:
protected $rule = [
'search.order' => 'numeric|between:1,2',
'search.keyword' => 'chsAlphaNum',
'search.recycle' => 'boolean',
];
你也可以驗(yàn)證數(shù)組中的每個(gè)元素。例如,要驗(yàn)證指定數(shù)組輸入字段中的每一個(gè) id 是唯一的,可以這么做:
protected $rule = [
'search.*.id' => 'numeric|unique:account'
];
數(shù)組規(guī)則的錯(cuò)誤消息的定義也一樣
protected $message = [
'search.order.numeric' => '排序參數(shù)錯(cuò)誤',
'search.order.between' => '排序參數(shù)錯(cuò)誤',
'search.keyword.chsAlphaNum' => '關(guān)鍵詞只能包含中文,字母,數(shù)字',
'search.recycle.boolean' => '參數(shù)錯(cuò)誤:recycle',
];
驗(yàn)證器類屬性
$rule
用戶定義驗(yàn)證器的驗(yàn)證規(guī)則,也可以通過setRules方法來(lái)進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部規(guī)則
// 類中定義
protected $rule = [
'user' => 'required'
];
// 使用方法定義
$v->setRules([
'user' => 'required'
]);
$message
用戶定義驗(yàn)證器的錯(cuò)誤信息,也可以通過setMessages方法來(lái)進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部錯(cuò)誤消息
// 類中定義
protected $message = [
'user.required' => '賬號(hào)必須填寫'
];
// 使用方法定義
$v->setMessages([
'user.required' => '賬號(hào)必須填寫'
]);
$scene
定義驗(yàn)證場(chǎng)景的數(shù)據(jù),用于指定驗(yàn)證場(chǎng)景對(duì)應(yīng)的驗(yàn)證字段等,詳細(xì)用法查看驗(yàn)證場(chǎng)景一節(jié),同樣也可以通過setScene方法來(lái)進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部驗(yàn)證場(chǎng)景
// 類中定義
protected $scene = [
'login' => ['user', 'pass']
];
// 使用方法定義
$v->setScene([
'login' => ['user', 'pass']
]);
$event
定義此驗(yàn)證器下的全局事件,詳細(xì)用法查看事件一節(jié)
protected $event = [
CheckSiteStatus::class
];
$customAttributes
定義驗(yàn)證字段的名稱,也可以通過setCustomAttributes方法來(lái)進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部字段名稱, 錯(cuò)誤消息中的:attribute會(huì)使用下面的值對(duì)應(yīng)的替換
protected $customAttributes = [
'user' => '賬號(hào)',
'pass' => '密碼'
];
$default
定義字段的默認(rèn)值
protected $default = [
'name' => '張三'
];
關(guān)于默認(rèn)值的詳情請(qǐng)查看默認(rèn)值一節(jié)
$filter
用于數(shù)據(jù)驗(yàn)證后處理數(shù)據(jù)
protected $filter = [
'name' => 'trim'
];
關(guān)于過濾器的詳情請(qǐng)查看過濾器一節(jié)
$ruleMessage
類方法規(guī)則的錯(cuò)誤信息
protected $ruleMessage = [
':attribute的值只能具有中文'
];
點(diǎn)擊查看示例
$filled
所有驗(yàn)證的字段在存在時(shí)不能為空,如果此屬性值為true,所有規(guī)則會(huì)自動(dòng)增加filled規(guī)則,默認(rèn)為true
當(dāng)出現(xiàn)以下情況時(shí),不會(huì)自動(dòng)添加filled規(guī)則
-
驗(yàn)證規(guī)則中存在
filled,nullable,accepted,present,required,required_if,required_unless,required_with,required_with_all,required_without,required_without_all規(guī)則 - 驗(yàn)證規(guī)則存在extendImplicit定義的規(guī)則
- 驗(yàn)證規(guī)則存在extendImplicitRule定義的規(guī)則
-
驗(yàn)證規(guī)則實(shí)現(xiàn)了
Itwmw\\Validation\\Support\\Interfaces\\ImplicitRule標(biāo)記接口
protected bool $filled = true;
$regex
預(yù)定義正則表達(dá)式驗(yàn)證規(guī)則,詳情查看正則表達(dá)式規(guī)則
protected $regex = [
'number' => '/^\\d+$/'
];
- 上海長(zhǎng)擎實(shí)業(yè)公司產(chǎn)品畫冊(cè)
- 用于OHOS最簡(jiǎn)單的UI驗(yàn)證庫(kù)教程 1次下載
- SystemVerilog的正式驗(yàn)證和混合驗(yàn)證 25次下載
- 16位CRC驗(yàn)證碼生成VI工具下載 57次下載
- 一種混合的云數(shù)據(jù)完整性驗(yàn)證方案 9次下載
- 如何使用PHP查詢MYSQL生成動(dòng)態(tài)表單 8次下載
- Visual_Foxpro6.0如何進(jìn)行表單設(shè)計(jì)? 10次下載
- 微信小程序如何開發(fā)?微信小程序教程視頻常用組件API開發(fā)項(xiàng)目實(shí)戰(zhàn) 88次下載
- 版圖驗(yàn)證方法說(shuō)明 0次下載
- Activiti工作流結(jié)合外置表單技術(shù)研究 16次下載
- 智能水表單片機(jī)系統(tǒng)參考 114次下載
- JAVA教程之簡(jiǎn)單的表單程序 6次下載
- 基于SSH框架的動(dòng)態(tài)表單設(shè)計(jì)與實(shí)現(xiàn) 42次下載
- Struts2 極速表單驗(yàn)證框架使用說(shuō)明書
- 超生倒車報(bào)擎電路
- fpga驗(yàn)證和uvm驗(yàn)證的區(qū)別 3k次閱讀
- 如何解決表單重復(fù)提交的問題 2.3k次閱讀
- Java 中驗(yàn)證碼的使用 2.1k次閱讀
- fpga驗(yàn)證及其在soc驗(yàn)證中的作用有哪些 2.1k次閱讀
- 基于形式的高效 RISC-V 處理器驗(yàn)證方法 1.5k次閱讀
- 驗(yàn)證和確認(rèn)的區(qū)別和關(guān)系 7.9k次閱讀
- 驗(yàn)證組件配置參數(shù) 1.4k次閱讀
- IC驗(yàn)證的主要工作流程和驗(yàn)證工具是什么? 2.8k次閱讀
- 形式驗(yàn)證入門之基本概念和流程 3.6k次閱讀
- 如何利用D3引擎來(lái)創(chuàng)建APP和短信推送規(guī)則 2.3k次閱讀
- 簡(jiǎn)單地描述了如何用機(jī)器學(xué)習(xí)繞過E-ZPass New York網(wǎng)站的驗(yàn)證碼 7k次閱讀
- 基于System Verilog的可重用驗(yàn)證平臺(tái)設(shè)計(jì)及驗(yàn)證結(jié)果分析 3.2k次閱讀
- 驗(yàn)證設(shè)計(jì)和創(chuàng)建可實(shí)現(xiàn)的設(shè)計(jì) 994次閱讀
- 基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境 3.8k次閱讀
- 基于OVM驗(yàn)證平臺(tái)的IP芯片驗(yàn)證 3.3k次閱讀
下載排行
本周
- 11節(jié)電池用電池保護(hù)IC S-8261D系列數(shù)據(jù)手冊(cè)
- 3.07 MB | 1次下載 | 1 積分
- 2PT8P2107 觸控 IO 型 8-Bit MCU規(guī)格書
- 3.73 MB | 次下載 | 免費(fèi)
- 3PT8P2309 觸控 A/D 型 8-Bit MCU規(guī)格書
- 4.05 MB | 次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 次下載 | 免費(fèi)
- 5AU-48雙麥多功能語(yǔ)音處理模組規(guī)格書(5)
- 2.24 MB | 次下載 | 免費(fèi)
- 6WX-0813_AI_ENC語(yǔ)音處理模組規(guī)格書
- 907.46 KB | 次下載 | 免費(fèi)
- 7電子管膽機(jī)中文資料
- 0.03 MB | 次下載 | 1 積分
- 8ESI Allegro XP 大尺寸MLCC測(cè)試分選機(jī)規(guī)格書
- 0.66 MB | 次下載 | 免費(fèi)
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 20次下載 | 10 積分
- 2反激式開關(guān)電源設(shè)計(jì)解析
- 0.89 MB | 14次下載 | 5 積分
- 3耗盡型MOS FET產(chǎn)品目錄選型表
- 0.14 MB | 3次下載 | 免費(fèi)
- 4簡(jiǎn)易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 5FP7135V060-G1/FP7125替代物料pin to pin
- 495.40 KB | 1次下載 | 免費(fèi)
- 62EDL05x06xx系列 600V半橋門驅(qū)動(dòng)器帶集成自舉二極管(BSD)手冊(cè)
- 0.69 MB | 1次下載 | 免費(fèi)
- 7TI系列-米爾TI AM62L核心板開發(fā)板-高能效低功耗嵌入式平臺(tái)
- 1.51 MB | 1次下載 | 免費(fèi)
- 81節(jié)電池用電池保護(hù)IC S-8261D系列數(shù)據(jù)手冊(cè)
- 3.07 MB | 1次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191457次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73831次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論