您的位置:首页 > 编程语言 > PHP开发

ThinkPHP5 表单请求和验证 - 02

2017-08-03 11:01 309 查看
表单验证

我们经常需要在控制器操作方法中进行表单的数据验证,首先确保你的控制器类继承了think\Controller,测试代码如下:

<?php

namespace app\index\controller;

use think\Controller;

use think\Request;

class Index extends Controller

{

    public function index(Request $request)

    {

        // 定义表单验证规则

        $rules = [

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

            'email' => 'email',

        ];

        // 验证表单数据

        $result = $this->validate($request->param(), $rules);

        if (true !== $result) {

            // 验证失败 输出错误信息

            return '数据验证失败:' . $result;

        } else {

            return '数据验证通过!';

        }

    }

}

这个例子对name和email两个表单数据进行数据验证,require验证规则表示该字段是必须验证的(确切的说所有require开

头的验证规则都会表示该字段是必须验证),而其它验证规则都是当有值的时候才进行验证,这是框架所有内置验证规则的通则。

我们用postman直接测试:
如果name字段没有传值,会显示:



或者填写的email格式不规范

但如果email留空的话验证是通过的



如果你没有继承think\Controller基类的话,可以直接调用think\Validate类进行表单数据验证,
和直接用控制器的 validate方法稍有区别。

<?php

namespace app\index\controller;

use think\Request;

use think\Validate;

class Index

{

    public function index(Request $request)

    {

        // 定义表单验证规则

        $rules = [

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

            'email' => 'email',

        ];

        // 验证表单数据

        $validate = new Validate($rules);

        $result = $validate->check($request->param());

        if (true !== $result) {

            // 验证失败 输出错误信息

            return '数据验证失败:' . $result;

        } else {

            return '数据验证通过!';

        }

    }

}

测试效果是一致的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: