Skip to content

在控制器获取请求参数后做对应的参数校验

验证类

验证器继承验证器基类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);
   }
}

Released under the Apache-2.0 License.