*/ public function rules(): array { /** @var Template $template */ $template = $this->route('template'); $rules = []; foreach ($template->keys as $key) { $fieldRules = [$key->is_required ? 'required' : 'nullable']; $fieldRules[] = match ($key->type) { TemplateKeyType::Text => 'string', TemplateKeyType::Image => 'file|image', TemplateKeyType::Chart => 'prohibited', }; $rules['values.'.$key->key] = $fieldRules; } return $rules; } /** * @return array */ public function messages(): array { return [ '*.prohibited' => 'کلید :attribute از نوع چارت است و فعلاً پشتیبانی نمی‌شود.', ]; } }