GlosarioArquitectura

¿Qué es Validation?

La Validation en Laravel permite verificar que los datos de entrada cumplen reglas especificas como required, email, unique o max, con mensajes de error automaticos y soporte para reglas personalizadas.

Validacion

Laravel incluye un sistema de validacion robusto y flexible que permite verificar los datos de entrada con decenas de reglas predefinidas y la posibilidad de crear reglas personalizadas.

Validacion basica

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|string|max:255',
        'email' => 'required|email|unique:users,email',
        'age' => 'required|integer|between:18,99',
        'avatar' => 'nullable|image|max:2048',
        'tags' => 'array|max:5',
        'tags.*' => 'string|exists:tags,slug',
    ]);

    // $validated solo contiene los datos que pasaron la validacion
    Post::create($validated);
}

Form Request (recomendado)

class UpdateProfileRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'email', Rule::unique('users')->ignore($this->user())],
            'bio' => ['nullable', 'string', 'max:1000'],
        ];
    }

    public function messages(): array
    {
        return [
            'name.required' => 'El nombre es obligatorio.',
            'email.unique' => 'Este email ya esta en uso.',
        ];
    }
}

Reglas personalizadas

php artisan make:rule Uppercase
class Uppercase implements ValidationRule
{
    public function validate(string $attribute, mixed $value, Closure $fail): void
    {
        if (strtoupper($value) !== $value) {
            $fail('El campo :attribute debe estar en mayusculas.');
        }
    }
}

Laravel incluye mas de 90 reglas de validacion predefinidas. Los errores de validacion se manejan automaticamente, redirigiendo al formulario con los mensajes de error y los datos antiguos.