在控制器获取请求参数后做对应的参数校验
验证类
验证器继承验证器基类BaseValidate,定义验证规则、错误提示信息和场景
<?php
namespace app\admin\validate;
use tmcore\base\BaseValidate;
/**
* Test验证器
*/
class TestValidate extends BaseValidate
{
protected $rule = [
'id' => 'require|checkArticleCate',
'name' => 'require|length:1,100',
];
protected $message = [
'id.require' => 'id不能为空',
'name.require' => '名称不能为空',
'name.length' => '名称长度须在1-100位字符',
];
/**
* 添加场景
* @return TestValidate
*/
public function sceneAdd()
{
return $this->remove(['id'])->remove('id', 'require');
}
/**
* 详情场景
* @return TestValidate
*/
public function sceneDetail()
{
return $this->only(['id']);
}
}验证使用
控制器中实例化验证类后,调用checkParam($scene,$data)方法验证
<?php
namespace app\admin\controller;
use app\admin\controller\AdminController;
use app\admin\service\TestService;
use app\admin\validate\TestValidate;
use think\response\Json;
class Test extends AdminController
{
public function add()
{
$params = (new TestValidate())->post()->checkParam('add');
$result = TestService::add($params);
if(true === $result) {
return $this->success([], '添加成功');
} else {
return $this->error(TestService::getError());
}
}
public function detail()
{
$params = (new TestValidate())->checkParam('detail');
$result = TestService::detail($params);
return $this->data($result);
}
}