validate method

Future<bool> validate({
  1. required String field,
  2. required List rules,
})

Validates a single request field using the supplied validation rules.

This method:

  • loads form data from the request
  • stores submitted values in session data for reuse
  • runs validation for the target field
  • flashes and stores validation errors in session state

Returns true when validation succeeds; otherwise returns false.

Example:

final valid = await request.validate(
  field: 'password',
  rules: [Rule.required, Rule.min(8)],
);

if (!valid) {
  return request.redirectBack();
}

Implementation

Future<bool> validate({required String field, required List<dynamic> rules}) async {
  final data = await form().all();

  // for old('name')
  // value="{{ session.data.<name>}}"
  thisSession?.data.addAll(data);

  final validator = _Validator(data);
  await validator.validate(field, rules);

  if (validator.errors.isNotEmpty) {
    flash(key: "errors", message: "request validator errors");
    thisSession?.errors.addAll(validator.errors);
    return false;
  }

  return true;
}