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 '数据验证通过!';
}
}
}
到目前为止你看到的错误提示都是系统内置的,其实大部分验证规则的错误提示只是字段名没有定义,
我们可以简单定义下字段描述信息,就基本可以满足大部分的验证错误提示了。
<?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 '数据验证通过!';
}
}
}
相关文章推荐
- ThinkPHP5 表单请求和验证 - 05
- ThinkPHP5 表单请求和验证 - 02
- ThinkPHP5 表单请求和验证 - 06
- ThinkPHP5 表单请求和验证 - 01
- ThinkPHP5 表单请求和验证 - 04
- JSP中在提交表单之前,发送ajax请求进行js的验证
- ThinkPHP 表单令牌验证功能
- thinkPHP 表单自动验证功能
- jquery validation 在触发按钮单击事件进行表单校验和验证通过后发起ajax请求的解决方案
- discuz 点击支持与反对按钮是提示‘抱歉,您的请求来路不正确或表单验证串不符,无法提交’
- 使用thinkphp框架完成表单自动验证
- ThinkPHP中create()方法自动验证表单信息
- struts2中使用ajax请求验证表单
- ajax同步请求 和 表单验证submitHandler
- Discuz X3.1微信打通版,发布回复时出现提示:您的请求来路不正确或表单验证串不符,无法提交问题的解决
- ThinkPHP5表单令牌+表单数据验证验证规则
- ThinkPHP表单验证
- thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成
- ThinkPHP中Ajax验证表单
- 2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里