日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

栈 php 验证格式,表单验证 - 《Biny - 高性能轻量级PHP框架》 - 书栈网 · BookStack...

發布時間:2024/9/27 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈 php 验证格式,表单验证 - 《Biny - 高性能轻量级PHP框架》 - 书栈网 · BookStack... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

表單驗證

框架提供了一套完整的表單驗證解決方案,適用于絕大多數場景。

表單驗證支持所有類型的驗證以及自定義方法

簡單示例:namespaceapp\form;

usebiny\lib\Form;

/**

* @property \app\service\testService $testService

* 自定義一個表單驗證類型類 繼承Form

*/

classtestFormextendsForm

{

// 定義表單參數,類型及默認值(可不寫,默認null)

protected$_rules=[

// id必須為整型, 默認10

'id'=>[self::typeInt,10],

// name必須非空(包括null, 空字符串)

'name'=>[self::typeNonEmpty],

// 自定義驗證方法(valid_testCmp)

'status'=>['testCmp']

];

// 自定義驗證方法

publicfunctionvalid_testCmp()

{

// 和Action一樣可以調用Service和DAO作為私有方法

if($this->testService->checkStatus($this->status)){

// 驗證通過

return$this->correct();

}else{

// 驗證失敗,參數可以通過getError方法獲取

return$this->error('非法類型');

}

}

}

定義完驗證類,然后就可以在Action中使用了,可以通過getForm方法加載表單// 加載testForm

$form=$this->getForm('test');

// 驗證表單字段,true/false

if(!$form->check()){

// 獲取錯誤信息

$error=$form->getError();

return$this->error('參數錯誤');

}

// 獲取對應字段

$status=$form->status;

// 獲取全部字段 返回數組類型 ['id'=>1, 'name'=>'billge', 'status'=>2]

$data=$form->values();

注意:在$_rules中未定義的字段,無法在$form中被獲取到,就算不需要驗證,也最好定義一下

在很多情況下,表單參數并不是都完全相同的,系統支持Form復用,即可以在通用的Form類中自定義一些內容

比如,還是上述例子的testForm,有個類似的表單,但是多了一個字段type,而且對于status的驗證方式也需要變化

可以在testForm中添加一個方法// 在testForm中添加

publicfunctionaddType()

{

// 添加type字段, 默認'default', 規則為非空

$this->_rules['type']=[self::typeNonEmpty,'default'];

// 修改status的判斷條件,改為valid_typeCmp()方法驗證,記得要寫這個方法哦

$this->_rules['status'][0]='typeCmp';

}

然后在Action中加載表單也需要添加'addType'作為參數,其他使用方法一致$form=$this->getForm('test','addType');

一個表單驗證類里可以寫多個附加方法,相互直接并不會有任何影響

驗證類型

系統提供了7種默認驗證方式,驗證失敗時都會記錄錯誤信息,用戶可以通過getError方法獲取

self::typeInt 數字類型,包括整型浮點型,負數

self::typeBool 判斷是否為true/false

self::typeArray 判斷是否為數組類型

self::typeObject 判斷是否為對象數據

self::typeDate 判斷是否為一個合法的日期

self::typeDatetime 判斷是否為一個合法的日期時間

self::typeNonEmpty 判斷是否非空(包括null, 空字符串)

self::typeRequired 有該參數即可,可以為空字符串

驗證類型幾乎涵蓋了所有情況,如果有不能滿足的類型,用戶可以自定義驗證方法,上述例子中已有,不再過多闡述

總結

以上是生活随笔為你收集整理的栈 php 验证格式,表单验证 - 《Biny - 高性能轻量级PHP框架》 - 书栈网 · BookStack...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。