www.gusucode.com > Aycms自媒体建站系统PHP版 v1.0.1源码程序 > Aycms_v1.0.1/vendor/thinkcmf/cmf/src/controller/PluginRestBaseController.php
<?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +---------------------------------------------------------------------- // | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +--------------------------------------------------------------------- // | Author: Dean <zxxjjforever@163.com> // +---------------------------------------------------------------------- namespace cmf\controller; use think\App; use think\exception\ValidateException; use think\Request; use think\Loader; class PluginRestBaseController extends RestBaseController { /** * @var \cmf\lib\Plugin */ private $plugin; /** * 构造函数 * @param Request $request Request对象 * @access public */ public function __construct(App $app = null) { parent::__construct($app); $this->getPlugin(); } public function getPlugin() { if (is_null($this->plugin)) { $pluginName = $this->request->param('_plugin'); $pluginName = cmf_parse_name($pluginName, 1); $class = cmf_get_plugin_class($pluginName); $this->plugin = new $class; } return $this->plugin; } /** * 验证数据 * @access protected * @param array $data 数据 * @param string|array $validate 验证器名或者验证规则数组 * @param array $message 提示信息 * @param bool $batch 是否批量验证 * @param mixed $callback 回调方法(闭包) * @return array|string|true * @throws ValidateException */ protected function validate($data, $validate, $message = [], $batch = false, $callback = null) { if (is_array($validate)) { $v = $this->app->validate(); $v->rule($validate); } else { if (strpos($validate, '.')) { // 支持场景 list($validate, $scene) = explode('.', $validate); } $v = $this->app->validate('\\plugins\\' . cmf_parse_name($this->plugin->getName()) . '\\validate\\' . $validate . 'Validate'); if (!empty($scene)) { $v->scene($scene); } } // 是否批量验证 if ($batch || $this->batchValidate) { $v->batch(true); } if (is_array($message)) { $v->message($message); } if ($callback && is_callable($callback)) { call_user_func_array($callback, [$v, &$data]); } if (!$v->check($data)) { if ($this->failException) { throw new ValidateException($v->getError()); } return $v->getError(); } return true; } }