// +---------------------------------------------------------------------- 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(); $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); } }