亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 61
粉絲 0
評論 0
訪問量 73722
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
thinkPHP5.1中的驗(yàn)證和獨(dú)立驗(yàn)證
Pengsir
原創(chuàng)
1921人瀏覽過

用戶自定義驗(yàn)證類User:

<?php
/**
 * 驗(yàn)證規(guī)則,就是一個類
 */

namespace app\common;

use think\Validate;

class User extends Validate
{
    //系統(tǒng)框架里的Validate的驗(yàn)證規(guī)則
    //當(dāng)前驗(yàn)證規(guī)則
    protected $rule = [
            'name|姓名'=>[
                'require'=>'require',//必填,不能為空
                'min'=>3,//最小為3位
                'max'=>10,//最大為10位
            ],
        'email|郵箱'=>[
            'require'=>'require',
            'email'=>'email'
        ],
        'mobile|手機(jī)'=>[
            'require'=>'require',
            'mobile'=>'mobile'
        ],
        'password|密碼'=>[
            'require'=>'require',
           'min'=>6,
            'max'=>12,
            'alphaNum'=>'alphaNum'//僅允許字母+數(shù)字
        ]
    ];
}

靜態(tài)代理User類:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/1/24 0024
 * Time: 17:37
 */

namespace app\facade;


use think\Facade;

class User extends Facade
{
    //第二種方式  用靜態(tài)代理調(diào)用
        //獲取當(dāng)前Facade對應(yīng)類名
    protected static function getFacadeClass()
    {
        return 'app\common\User';
    }
}

控制器下Demo9代碼:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/1/23 0023
 * Time: 21:44
 */

namespace app\index\controller;


use think\Controller;
use app\common\User;
//use app\facade\User;//導(dǎo)入靜態(tài)代理類

use think\facade\Validate;

class Demo9 extends Controller
{
    //第一種方法
    public function test1(){
        //要驗(yàn)證的數(shù)據(jù)
        $data = [
            'name'=>'peng',
            'email'=>'peng@qq.com',
            'mobile'=>'18871587950',
            'password'=>'123abc'
        ];
        //創(chuàng)建User這個類的實(shí)例
        $validate = new User();

         if(!$validate->check($data)){
             return $validate->getError();
         }
             return '驗(yàn)證通過';
         }
         //第二種方法,用靜態(tài)代理調(diào)用
         public function test2(){
             //要驗(yàn)證的數(shù)據(jù)
             $data = [
                 'name'=>'peng',
                 'email'=>'peng@qq.com',
                 'mobile'=>'18871587950',
                 'password'=>'123abc'
             ];
             if(!User::check($data)){
                 return User::getError();
             }
             return '驗(yàn)證通過';
         }
         //第三種方法,在控制中調(diào)用,因?yàn)榭刂浦杏序?yàn)證數(shù)據(jù)的方法
            public function test3(){
                //3.1要驗(yàn)證的數(shù)據(jù)
                $data = [
                    'name'=>'peng',
                    'email'=>'peng@qq.com',
                    'mobile'=>'18871587950',
                    'password'=>'123abc'
                ];
                    //3.2 驗(yàn)證器名
                $validate = 'app\common\User';

                //3.3 驗(yàn)證方法
               // protected function validate($data, $validate)
                $res = $this->validate($data, $validate);
                if($res!==true){
                    return $res;
                }
                    return '驗(yàn)證通過';
                }
        /*
         * 驗(yàn)證總結(jié):
         * 1.驗(yàn)證器是一個自定義的類,必須繼承框架的驗(yàn)證類think\Validate.php
         * 2.驗(yàn)證器可以創(chuàng)建在應(yīng)用application目錄下的任何一個可以訪問的目錄下面
         *    這個訪問是指控制器可以訪問,并不是指外部的URL訪問,只需要指定正確的命名空間
         * 3.驗(yàn)證器其實(shí)就是完成框架的think\Validate類中的屬性protected $rule=[] 初始化
         * 4.在控制器中直接實(shí)例化調(diào)用check()完成驗(yàn)證
         * 5.還可以創(chuàng)建一個自定義的靜態(tài)代理,來統(tǒng)一驗(yàn)證方法的調(diào)用方式
         */


        /*
         * 獨(dú)立驗(yàn)證總結(jié):
         *  原理:就是單獨(dú)用Validate這個類調(diào)用自己的非靜態(tài)方法check($data,$rule)
         * 1.把這個類變成靜態(tài)的,就要引入use think\facade\Validate;facade\Validate里的方法把Validate類,類似轉(zhuǎn)為靜態(tài)
         * 2.Validate類調(diào)check($data,$rule)
         */
    //        2.獨(dú)立驗(yàn)證:使用的是驗(yàn)證器類的think\Validate中的rule()方法
            //rule()方法實(shí)際上就是完成給當(dāng)前類的protected $rule =[]初始化
            //獨(dú)立驗(yàn)證就是不依賴于用戶自定義的驗(yàn)證器類:app\common\User.php
        public function test4(){
            /*
             * 這只是添加字段的驗(yàn)證規(guī)則
             *string|array  $name  字段名稱或者規(guī)則數(shù)組
             *$rule  驗(yàn)證規(guī)則或者字段描述信息
             * public function rule($name, $rule = '')
             */
            //4.1要驗(yàn)證的數(shù)據(jù)
            $data = [
                'name'=>'peng',
                'email'=>'peng@qq.com',
                'mobile'=>'18871587950',
                'password'=>'123abc'
            ];

            $rule = [
                'name|姓名'=>[
                    'require'=>'require',//必填,不能為空
                    'min'=>3,//最小為3位
                    'max'=>10,//最大為10位
                ],
                'email|郵箱'=>[
                    'require'=>'require',
                    'email'=>'email'
                ],
                'mobile|手機(jī)'=>[
                    'require'=>'require',
                    'mobile'=>'mobile'
                ],
                'password|密碼'=>[
                    'require'=>'require',
                    'min'=>6,
                    'max'=>12,
                    'alphaNum'=>'alphaNum'//僅允許字母+數(shù)字
                ]
            ];
            //添加字段的驗(yàn)證規(guī)則:初始化rule屬性
            Validate::rule($rule);

           if(!Validate::check($data)){
               return Validate::getError();
           }
           return '驗(yàn)證通過';
        }
    }


本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)