Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
SpanishPostalCode
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 validate
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace App\Rules;
4
5use Illuminate\Contracts\Validation\ValidationRule;
6
7class SpanishPostalCode implements ValidationRule
8{
9    /**
10     * Validate that the value is a valid Spanish postal code (5 digits, provinces 01–52).
11     */
12    public function validate(string $attribute, mixed $value, \Closure $fail): void
13    {
14        if (!preg_match('/^(0[1-9]|[1-4]\d|5[0-2])\d{3}$/', $value)) {
15            $fail('El código postal no es válido.');
16        }
17    }
18}