// +---------------------------------------------------------------------- namespace app\adminapi\controller; use crmeb\basic\BaseController; use think\facade\Validate; /** * 基类 所有控制器继承的类 * Class AuthController * @package app\adminapi\controller */ class AuthController extends BaseController { /** * 当前登陆管理员信息 * @var */ protected $adminInfo; /** * 当前登陆管理员ID * @var */ protected $adminId; /** * 当前管理员权限 * @var array */ protected $auth = []; /** * 初始化 */ protected function initialize() { $this->adminId = $this->request->adminId();//获取当前登陆管理员ID $this->adminInfo = $this->request->adminInfo();//获取当前登陆管理员信息 $this->auth = $this->request->adminInfo['rule'] ?? [];//获取当前登陆管理员权限 } /** * 验证数据 * @param array $data * @param $validate * @param null $message * @param bool $batch * @return bool */ final protected function validate(array $data, $validate, $message = null, bool $batch = false) { if (is_array($validate)) { $v = new Validate();//验证器 $v->rule($validate);//验证规则 } else { if (strpos($validate, '.')) {// 支持场景 // 支持场景 list($validate, $scene) = explode('.', $validate); } $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);//获取验证器类名 $v = new $class();//实例化验证器 if (!empty($scene)) { $v->scene($scene);//验证场景 } if (is_string($message) && empty($scene)) { $v->scene($message); } } if (is_array($message)) $v->message($message); // 是否批量验证 if ($batch) { $v->batch(true); } return $v->failException(true)->check($data); } }