gatherRulesAndAttributes(); return $this->validationRules; } public function getConfigs() { if (!$this->configs) { $this->configs = Config::query() ->whereIn('slug', $this->keys()) ->get(); } return $this->configs; } /** * 从数据库中收集本次请求要更新的字段的 name 和 validation_rules */ protected function gatherRulesAndAttributes() { $configs = $this->getConfigs(); $rules = []; $attributes = []; foreach ($configs as $config) { /** @var Config $config */ $rules[$config->slug] = $config->validation_rules ?: 'nullable'; $attributes[$config->slug] = $config->name; } $this->validationRules = $rules; $this->validationAttributes = $attributes; } public function attributes() { return $this->validationAttributes; } }