電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>微擎表單驗(yàn)證

微擎表單驗(yàn)證

2022-06-29 | zip | 0.08 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 Apache
開(kāi)發(fā)語(yǔ)言 PHP
操作系統(tǒng) 跨平臺(tái)
軟件類型 開(kāi)源軟件

軟件簡(jiǎn)介

微擎表單驗(yàn)證是一個(gè)讓你的表單驗(yàn)證更為方便,快捷,安全的擴(kuò)展,滿足你的一切驗(yàn)證需求。

中文 | English

目錄

安裝

使用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)證通過(guò),則返回所有通過(guò)驗(yàn)證的值,如未通過(guò),則拋出一個(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)證成功,并返回通過(guò)驗(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ī)則,也可以通過(guò)setRules方法來(lái)進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部規(guī)則

// 類中定義
protected $rule = [
    'user' => 'required'
];

// 使用方法定義
$v->setRules([
    'user' => 'required'
]);

$message

用戶定義驗(yàn)證器的錯(cuò)誤信息,也可以通過(guò)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é),同樣也可以通過(guò)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)證字段的名稱,也可以通過(guò)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)于過(guò)濾器的詳情請(qǐng)查看過(guò)濾器一節(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+$/'
];
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)