Validar confirmación de contraseña con Laravel - Confirmar contraseña

Laravel: validar confirmación de contraseña

En el corto post de hoy veremos cómo validar que las contraseñas que el usuario escribe sean iguales al momento de registrar un usuario, es decir, que la contraseña y la confirmación de la contraseña coincidan.

Así vas a poder mostrar el mensaje de “Las contraseñas deben coincidir” o “Vuelve a escribir tu contraseña”

Esto se puede hacer con un if o cosas complejas, pero te enseñaré a comprobar si las 2 contraseñas son iguales dentro del Request que llega al formulario, dentro de StoreUserRequest específicamente.

Por cierto, estoy suponiendo que usas la autenticación de Laravel para crear usuarios o que al menos usas un Request para enviar el formulario.

Validando confirmación de contraseña

Lo único que tenemos que hacer es modificar el StoreUserRequest o el request que uses para registrar al usuario. En mi caso mis reglas se ven así:

<?php
/**
     * Get the validation rules that apply to the request.
     *
     * @return array<string, mixed>
     */
    public function rules()
    {
        return [
            "name" => "required",
            "email" => "email:rfc",
            "password" => "required",
            "passwordConfirm" => "required|same:password",
            "rol" => "required",
        ];
    }

Presta atención a la línea 12, ahí estoy indicando que el campo password es requerido, pero además en la línea 13 indico que el campo passwordConfirm es requerido y debe ser igual al campo password con same:password.

Formulario para crear usuario

En este caso es necesario que el campo se llame igual que el de la validación. Por lo tanto mis campos son password y passwordConfirm:

<div class="field">
    <label class="label">Contraseña</label>
    <div class="control">
        <input required class="input" type="password" placeholder="Escribe la contraseña" name="password">
    </div>
</div>
<div class="field">
    <label class="label">Confirmar contraseña</label>
    <div class="control">
        <input required class="input" type="password" placeholder="Vuelve a escribir la contraseña"
            name="passwordConfirm">
    </div>
</div>

Abajo del formulario estoy mostrando los errores en caso de que existan:

@if(session("mensaje"))
<div class="mt-2 notification is-{{session('tipo') ? session("tipo") : "info"}}">
    {{session('mensaje')}}
</div>
@endif
@if (!empty($errors->all()))
<div class="notification is-danger mt-2">
    <h4 class="is-size-4">Por favor, corrige lo siguiente:</h4>
    <ul>
        @foreach ($errors->all() as $mensaje)
        <li>
            {{ $mensaje }}
        </li>
        @endforeach
    </ul>
</div>
@endif

Y en caso de que el usuario no escriba las mismas contraseñas y envíe el formulario, aparecerá lo siguiente:

Validar confirmación de contraseña con Laravel - Confirmar contraseña
Validar confirmación de contraseña con Laravel – Confirmar contraseña

La ventaja de usar Requests es que si la misma es inválida nunca llegará a nuestro controlador en donde guardamos el usuario.

Por aquí te dejo más tutoriales de Laravel.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *