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

ThinkPHP5 表单请求和验证 - 03

2017-08-03 11:31 155 查看
验证错误信息

到目前为止你看到的错误提示都是系统内置的,其实大部分验证规则的错误提示只是字段名没有定义,

我们可以简单定义下字段描述信息,就基本可以满足大部分的验证错误提示了。

<?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 '数据验证通过!';

        }

    }

}

测试邮箱错误的提示信息有所变化:

如果有必要,你也可以完整定义自己的错误信息,例如:

<?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',

        ];

        $msg = [

            'name' => ['require' => '名称必须', 'max' => '名称超过最大长度'],

            'email' => '邮箱格式错误',

        ];

        // 验证表单数据

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

        if (true !== $result) {

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

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

        } else {

            return '数据验证通过!';

        }

    }

}

V5.0.4版本之前,错误信息的定义必须使用下面的方式替代:

<?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',

        ];

        $msg = [

            'name.require' => '名称必须',

            'name.max' => '名称超过最大长度',

            'email' => '邮箱格式错误',

        ];

        // 验证表单数据

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

        if (true !== $result) {

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

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

        } else {

            return '数据验证通过!';

        }

    }

}

当我们的name值输入超过25位后,会提示:名称超过最大长度

如果你使用的是独立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',

        ];

        $msg = [

            'name' => ['require' => '名称必须', 'max' => '名称超过最大长度'],

            'email' => '邮箱格式错误',

        ];

        // 验证表单数据

        $validate = new Validate($rules, $msg);

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

        if (true !== $result) {

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

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

        } else {

            return '数据验证通过!';

        }

    }

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