24
Validation

Partial Field Validation

Describe, resolve, and validate partial field subsets.

Describe and resolve fields

API signatures:

  • FormInstance::describeFields(): array
  • FormInstance::resolveField(string $identifier): ?array
  • FormManager::describeFields(string $formKey, ?string $version = null): array
  • FormManager::resolveField(string $formKey, string $identifier, ?string $version = null): ?array
  • ScopedFormManager::describeFields(string $formKey, ?string $version = null): array
  • ScopedFormManager::resolveField(string $formKey, string $identifier, ?string $version = null): ?array

Descriptor shape:

  • name (canonical key)
  • field_key, key, id, label (nullable)
  • type
  • required (bool)
  • rules (array)
  • options (array, empty when not relevant)
  • default (mixed)
  • lookup_keys (array<string>, ordered unique aliases used by resolver)

Validate partial field subsets

API signatures:

  • FormInstance::validateFields(array $payload, array $onlyFields = [], ?string $locale = null): array
  • FormManager::validateFields(string $formKey, array $payload, array $onlyFields = [], ?string $version = null, ?string $locale = null): array
  • ScopedFormManager::validateFields(string $formKey, array $payload, array $onlyFields = [], ?string $version = null, ?string $locale = null): array

Behavior:

  • onlyFields = []: validate only keys present in payload that resolve to known fields
  • onlyFields != []: validate strictly the requested subset
  • identifiers in onlyFields may be aliases (name, field_key, key, id)
  • errors are returned by canonical name
  • unknown payload keys are ignored in this partial flow
  • unresolved identifiers in onlyFields return explicit per-identifier errors