php 表单提交及验证 tp,THINKPHP5验证的使用(表单验证等)

鉴于之前博客中一直都没有验证器这块的教程,而且偶然发现用的东西还比较多,所以这里我们就直接写一篇教程,带大家领悟下TP5中验证器的使用(当然这个东西会了,laravel下的使用时差不多的方式,下面我们就开始今天的验证器。

首次我们先使用独立验证(即不需要在模块目录下创建验证文件夹,如下:

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/9/27 0027

* Time: 00:50

*/

namespace app\index\controller;

use think\Controller;

use think\Validate;

class User extends Controller

{

/**

* 验证器中的独立验证使用

* 独立验证实际上的意思就是说,你单独拿出来使用,不用在模块目录下创建验证目录

* 官方手册中说 任何时候,都可以使用Validate类进行独立的验证操作

* 这里我的理解是,只要引用了这个类,那么大家都可以在控制层或者模型层使用它。

*/

/**

* 所以第一步我们需要在命名空间namespace 下面引入验证类Validate

* 下面我新建一个公共的方法index 并使用独立验证

*/

public function index(){

return $this->fetch();

}

public function infomation(){

/**

* 实例化验证类

* 传入一个数组

*

* 键-值 require的意思是必填的意思,

* max的意思为最长只能为25个长度

* 想要添加多个验证条件数线( | )分隔即可

*

* 内置了email验证格式,所以直接 email验证条件即可

*/

$validate=new Validate(

[

'name'=>'require|max:25',

'email'=>'email',

]

);

/**

* 接收到的数据,比如是form表单提交的

* 或者ajax提交的数据,官方手册中 是直接赋予了值,

* 获取接收到的值,你可以使用input()方法或者request()方法亦可

* 像下面这样

*/

$data=[

'name'=>input('post.name'),

'email'=>input('post.email'),

];

/**

* 判断验证结果

* 验证结果可以直接调用check()方法

*

* 下面的意思是如果验证失败

* 打印错误信息 获取错误信息可以直接实例验证类调用getError()方法即可

*/

if(!$validate->check($data)){

dump($validate->getError());

}else{

return "验证成功";

}

}

}

视图层代码(View层):

主页

validate

默认第一次的页面是这样子的,如下图:

d5745bfa927e8c53546ee3cd86301f21.png

然后我们在input框中输入name值和email值 :

我们先不输入name值,邮箱输入正确的格式会出现如下的样子:

e4e4ab9cd48387e35055e62ce0d1fe10.png

a87a72ba2d580b005ea17fdcde63e85c.png

当然这里如果我们填入正确的格式值,页面会返回我们验证成功的字样(这里的验证字段信息是我在控制层直接return的),像这样子的页面,当然在实际生产环境中你们可以直接重定向到指定的页面下。

21fd1a382a33044d43aa9094acd6e68d.png

下面我们使用验证器方式:

首先我们需要在模块目录下创建validate目录,然后在此目录下创建验证器文件

c266157fbde8c271d611348667f18cdb.png

下面是验证层验证器的代码:

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/9/27 0027

* Time: 01:59

*/

namespace app\index\validate;

use think\Validate;

class User extends Validate

{

/**

* 继承验证器类 think\Validate

*/

/**

* 定义受保护的属性 $rule 为一个数组格式(也就是验证规则信息)

* 注意属性变量名称这里一定更要一致哦

* 像下面这样我们就定义好了一个最简单的验证器

* 然后我们在需要的地方去调用这个验证器 User,比如控制层Controller

*/

protected $rule=[

'name'=>'require|max:25',

'email'=>'email',

];

}

下面是视图层(View层)代码:

主页

validate

这里只是简单了修改了我们form表单提交的action地址。

下面是控制层(Controller层)代码 :

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/9/27 0027

* Time: 00:50

*/

namespace app\index\controller;

use think\Controller;

use think\Loader;

use think\Validate;

class User extends Controller

{

/**

* 验证器中的独立验证使用

* 独立验证实际上的意思就是说,你单独拿出来使用,不用在模块目录下创建验证目录

* 官方手册中说 任何时候,都可以使用Validate类进行独立的验证操作

* 这里我的理解是,只要引用了这个类,那么大家都可以在控制层或者模型层使用它。

*/

/**

* 所以第一步我们需要在命名空间namespace 下面引入验证类Validate

* 下面我新建一个公共的方法index 并使用独立验证

*/

public function index(){

return $this->fetch();

}

public function infomation(){

/**

* 实例化验证类

* 传入一个数组

*

* 键-值 require的意思是必填的意思,

* max的意思为最长只能为25个长度

* 想要添加多个验证条件数线( | )分隔即可

*

* 内置了email验证格式,所以直接 email验证条件即可

*/

$validate=new Validate(

[

'name'=>'require|max:25',

'email'=>'email',

]

);

/**

* 接收到的数据,比如是form表单提交的

* 或者ajax提交的数据,官方手册中 是直接赋予了值,

* 获取接收到的值,你可以使用input()方法或者request()方法亦可

* 像下面这样

*/

$data=[

'name'=>input('post.name'),

'email'=>input('post.email'),

];

/**

* 判断验证结果

* 验证结果可以直接调用check()方法

*

* 下面的意思是如果验证失败

* 打印错误信息 获取错误信息可以直接实例验证类调用getError()方法即可

*/

if(!$validate->check($data)){

dump($validate->getError());

}else{

return "验证成功";

}

}

public function lists(){

/**

* 创建一个lists方法

* $data为验证的数据 为一个数组

*/

$data = [

'name'=>input('post.name'),

'email'=>input('post.email')

];

/**

* 静态调用实例中的验证器方法

*/

$validate = Loader::validate('User');

/**

* 或者也可以使用助手函数 validate()函数

* 任意选择一个即可

*/

// $validate = validate('User');

/**

* 同样是调用验证方法check方法

* 判断验证结果

* getError()返回错误信息

*/

if(!$validate->check($data)){

dump($validate->getError());

}else{

return "验证成功";

}

}

}

下面我试一试效果,图如下:

70147ad6b022fc45808d7f6d0e824264.png

a08ef52b6c0e8b1a4f2f19d31626a459.png

下面是验证成功的样子:

00ce227e65aced9dbd9f124c7a854ff1.png

7dbb1c1093f3646cb0a9de8127f17860.png

这里独立验证和验证器的使用,剩余的部分大家参照手册即可明白剩余的操作及含义了,如果还有不太明白的地方大家可以在下方留言给我,我收到第一时间回复,最后最近重看无间道3中有这么一句话送给大家:

地藏菩萨本原经卷上: 如是等辈,当堕无间地狱,千万意劫,以此连绵,求无出期。

晚安

标签:name,验证,THINKPHP5,表单,input,validate,data,email

来源: https://blog.csdn.net/qq_39338006/article/details/82861471

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值