99国产在线视频有精品视频_国产精品久久久久久亚洲影视 _国产三级日本三级韩国三级在线看_精精国产XXXX视频在线my_乱VODAFONEWIFI熟妇_超碰cao国产精品一区二区_91久久精品青青草原伊人_欧美,一区,日韩,精品

YzmCMS v7.0 x 表單數據提交驗證器

901次瀏覽 更新日期:2023-12-02 14:41:30 分類:模板插件 評論:5

我們在書寫控制器語句在有時候需要做到驗證


比如說我要判斷提交的某個字段的變量 不能為空 書寫起來就很麻煩


如果驗證的規則多了就感覺代碼一大堆 影響代碼的美觀 而且效率不高


所以 需要一款表單驗證器了


如何使用

把validator.class.php 驗證類 放到/yzmphp/core/class目錄下 即可


然后 我們需要構建一個模型驗證類 可以輸出驗證規則 以及自定義錯誤提示


以下是一個示例文件 具體你需要到模塊的model目錄下新建一個模型類 比如說我新建了一個文件叫test_validate.class.php

<?php
// +----------------------------------------------------------------------
// | Site:  [ http://www.yzmcms.com]
// +----------------------------------------------------------------------
// | Copyright: 袁志蒙工作室,并保留所有權利
// +----------------------------------------------------------------------
// | Author: zhaosong  原創字段驗證類 請不要未授權的情況下搬運代碼為自己的
// +---------------------------------------------------------------------- 
// | Explain: 這不是一個自由軟件,您只能在不用于商業目的的前提下對程序代碼進行修改和使用,不允許對程序代碼以任何形式任何目的的再發布!
// +----------------------------------------------------------------------
yzm_base::load_sys_class('validator','',0);
class test_validate extends validator
{
   /**
    * @書寫驗證規則
    * @author zhaosong
    * @date 2023-11-03
    */
	protected $rules = [
        'model' => 'required|min:6',
        'end'=>'required'
	];
	
    /**
    * @自定義錯誤信息提示
    * @author zhaosong
    * @date 2023-11-03
    */
	protected $messages = [
        'model.required' => 'model模型不能為空',
        'model.min' => 'model字段最少需要6位',
        'end.isnumber' => 'end這個字段必須為數字',
        'end.required'=>'這個字段不能為空!!!'
	];
	
	
}


我們可以到表單方法中使用 列如

<?php
// +----------------------------------------------------------------------
// | Site:  [ http://www.yzmcms.com]
// +----------------------------------------------------------------------
// | Copyright: 袁志蒙工作室,并保留所有權利
// +----------------------------------------------------------------------
// | Author: YuanZhiMeng // +---------------------------------------------------------------------- 
// | Explain: 這不是一個自由軟件,您只能在不用于商業目的的前提下對程序代碼進行修改和使用,不允許對程序代碼以任何形式任何目的的再發布!
// +----------------------------------------------------------------------
defined('IN_YZMPHP') or exit('Access Denied');
class test {
    
    // 請注意這只是一個測試模塊 請按照你需求來設置驗證規則 以下是在add方法中
    // 獲取的表單參數提交給驗證模型 驗證數據是否符合驗證規則
    public function add(){
        
        if(is_post()) {
            // 加載了模型驗證類
            yzm_base::load_model('test_validate', '', 0);
            //  這里把提交的參數傳遞給模型驗證類
		    $validator = new test_validate($_POST);
		    $isValid = $validator->check();
            if($isValid){
                // 如果驗證規則不符合就會回調錯誤信息 沒有信息回調就是驗證通過的意思
               return_message($isValid, 0);
            }
            
        }
    }
    
    
}

基本驗證規則就是這樣 我們來查看效果

image.png

我們在字段為空的時候 會錯誤提示 該字段不能為空 這是英文的 如果 我們需要實現自定義提示信息


我們可以在模型驗證類中寫


protected $messages = [
  'end.required'=>'這個字段不能為空!!!'
];


看看效果

image.png


基本使用

我們可以一個提交變量字段驗證多個規則 列如

protected $rules = [
   'model' => 'required|min:6',
    'end'=>'required'
];

先驗證 不能為空 后驗證 字符串最少6為 使用分號隔開


然后再驗證下一個需要驗證的字段


如果字段有多個驗證規則 我們需要分開設置多個自定義提示信息列如


protected $messages = [
   'model.required' => 'model模型不能為空',
   'model.min' => 'model字段最少需要6位',
];


這塊應該是可以理解的 那我們看看內置多少驗證規則可以寫


驗證規則

驗證某個字段必須,例如:

'name'=>'require'

驗證某個字段的值是否為純數字例如:

'num'=>'number'

驗證某個字段的值是否為整數,例如:

'num'=>'integer'

驗證某個字段的值是否為浮點數字,例如:

'num'=>'float'

驗證某個字段的值是否為布爾值,例如:

'num'=>'boolean'

驗證某個字段的值是否為email地址,例如:

'email'=>'email'

驗證某個字段的值是否為數組,例如:

'info'=>'array'

驗證某個字段的值是否為字符串,例如:

'info'=>'string'

驗證值是否為有效的日期,例如:

'date'=>'date'

驗證某個字段的值是否為純字母,例如:

'name'=>'alpha'

驗證某個字段的值是否為字母和數字,例如:

'name'=>'alnum'

驗證某個字段的值只能是漢字,例如:

'name'=>'hanzi'

驗證某個字段的值只能是漢字、字母和數字,例如:

'name'=>'hanzi_alnum'

驗證某個字段的值只能是漢字、字母、數字和下劃線_及破折號-,例如:

'name'=>'hanzi_alnum_dash'

驗證某個字段的值只能是控制字符(換行、縮進、空格),例如:

'name'=>'control_chars'

驗證某個字段的值只能是小寫字符,例如:

'name'=>'lowercase'

驗證某個字段的值只能是大寫字符,例如:

'name'=>'uppercase'

驗證某個字段的值只能是空白字符(包括縮進,垂直制表符,換行符,回車和換頁字符),例如:

'name'=>'whitespace'

驗證某個字段的值是否為有效的域名或者IP,例如:

'host'=>'domain_or_ip'

驗證某個字段的值是否為有效的URL地址,例如:

'url'=>'url'

驗證某個字段的值是否為指定格式的日期,例如:

'dates'=>'dates'

驗證某個字段的值是否為有效的手機,例如:

'mobile'=>'phone'

驗證某個字段的值是否為有效的身份證格式,例如:

'id_card'=>'id_card'

驗證某個字段的值的最大長度,例如:

'name'=>'max_length:25'

驗證某個字段是否和另外一個字段的值一致,例如:

'repassword'=>'same:11'

驗證某個字段是否以某個字符串開頭,例如:

'name'=>'starts_with:yzmcms'

驗證某個字段是否以某個字符串結尾,例如:

'name'=>'ends_with:yzmcms'

驗證某個字段是否以包含某個字符串,例如:

'name'=>'contains:yzmcms'

驗證是否等于某個值,例如:

'score'=>'equals:100'

驗證是否大于等于某個值,例如:

'score'=>'greater_than_equal:60'

驗證是否小于等于某個值,例如:

'score'=>'less_than_equal:100'

最后

未經允許本人授權 嚴謹搬運至某盜版中使用 源碼原創所寫 使用靈活


想使用但不懂 可以提出問題 我給你解決 謝謝!!

附件下載:


登錄后可查看詳情!

我來說兩句
  • yzmcms
    yzmcms 官網認證 1年前
    給你點個贊!
    1
    回復
  • style
    style 1年前
    還是不錯的~~~
    0
    回復
  • wukeke
    wukeke 1年前
    厲害了!
    0
    回復
  • 給你點個贊!
    0
    回復
  • oolaile
    oolaile 1年前
    雖然暫時用不上也不懂,評論一下證明我還活著。
    0
    回復
作者信息
發布見解
發內容 回頂部