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 '数据验证通过!';
}
}
}
测试效果是一致的。
我们经常需要在控制器操作方法中进行表单的数据验证,首先确保你的控制器类继承了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 '数据验证通过!';
}
}
}
测试效果是一致的。
相关文章推荐
- ThinkPHP5 表单请求和验证 - 01
- ThinkPHP5 表单请求和验证 - 04
- ThinkPHP5 表单请求和验证 - 05
- ThinkPHP5 表单请求和验证 - 06
- ThinkPHP5 表单请求和验证 - 03
- Servlet获取请求参数、表单验证(2015.9.15)
- discuz 点击支持与反对按钮是提示‘抱歉,您的请求来路不正确或表单验证串不符,无法提交’
- 如何使用thinkphp的model来验证前端表单?
- Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
- ThinkPHP框架表单验证
- 【SpringBoot】表单验证和使用AOP处理请求
- 新用户注册表单验证,ajax请求和到时定时器
- thinkPHP 表单自动验证功能
- thinkPHP实现表单自动验证
- Bootstrapvalidator表单验证+ 模态框 Ajax请求 Demo
- ThinkPHP 表单自动验证运用示例
- ThinkPHP 表单自动验证运用
- thinkphp 表单令牌错误解决方法,去掉部分表单令牌验证
- thinkphp 表单自动验证功能
- Spring Boot对表单实体做REST API请求自动封装验证