protected $middleware = ['app\middleware\Validate'];2、验证逻辑部分<?php
namespace app\middleware;
class Validate
{
/**
* @param \think\Request $request
* @param \Closure $next
* @return mixed|\think\response\Json
*/
public function handle($request, \Closure $next)
{
//获取当前参数
$params = $request->param();
//获取访问控制器
$controller = ucfirst($request->controller());
//获取操作名,用于验证场景scene
$scene = $request->action();
$validate = "app\\validate\\" . $controller;
//仅当验证器存在时 进行校验
if (class_exists($validate)) {
$v = new $validate;
//仅当存在验证场景才校验
if ($v->hasScene($scene)) {
//设置当前验证场景
$v->scene($scene);
if (!$v->check($params)) {
//校验不通过则直接返回错误信息
return $v->getError();
}
}
}
return $next($request);
}
}完成这2步基本能达到统一验证表单数据的效果了。承接开发微信小程序、微信公众号、网站建设、定制APP等外包项目。
https://www.ncyqd.com/ @一起点
最佳答案