rule, $this->info) = [$rule, $info]; $this->data = $this->parse($data); } /** * 解析输入数据 * @param array|string $data * @param array $result * @return array */ private function parse($data, $result = []) { if (is_array($data)) return $data; if (is_string($data)) foreach (explode(',', $data) as $field) { if (strpos($field, '#') === false) { $array = explode('.', $field); $result[end($array)] = input($field); } else { list($name, $value) = explode('#', $field); $array = explode('.', $name); $result[end($array)] = input($name, $value); } } return $result; } /** * 应用初始化 * @param Controller $controller * @return array */ public function init(Controller $controller) { $this->controller = $controller; $validate = Validate::make($this->rule, $this->info); if ($validate->check($this->data)) { return $this->data; } else { $this->controller->error($validate->getError()); } } }