v1.2.0
v1.2.0
Added
- Single-field validation capability for FormForge schemas, allowing validation of one input against one question in one form without creating a submission.
- New public API methods:
FormInstance::validateField(string $field, mixed $value): arrayFormManager::validateField(string $formKey, string $field, mixed $value, ?string $version = null): arrayScopedFormManager::validateField(string $formKey, string $field, mixed $value, ?string $version = null): array
- New HTTP endpoints (available in both scoped and non-scoped route trees):
POST /forms/{key}/validate-fieldPOST /forms/{key}/versions/{version}/validate-field
- New validation config option:
formforge.validation.field.stop_on_first_failure(default:false)
Changed
- Resolve endpoint group now also exposes targeted field validation routes, reusing existing endpoint middleware/auth/action routing patterns.
- Authorization action map extended with:
resolve.validate_field_latestresolve.validate_field_version
- Base policy contract extended with:
resolve_validate_field_latest(...)resolve_validate_field_version(...)
Notes
- Field-level validation returns a structured result (
valid,errors,validated) instead of persisting data. - Unknown field names are rejected consistently with existing validation behavior.
Full Changelog: v1.1.1...v1.2.0