14 Registro y validación de datos para USUARIOS en el SISTEMA (PHP y MySql)FullStack

Duración: 16 min
Módulo: 👤 CRUD de Usuarios y UX Avanzada Lección 6 de 17

Descripción

💾 Lección 14: Registro, Almacenamiento y Validación de Usuarios

Título del Video: 14 Registro y validación de datos para USUARIOS en el SISTEMA (PHP y MySql) FullStack

Esta lección es crucial, ya que se establece el flujo completo del CRUD (Create, Read, Update, Delete) para la creación de usuarios. El enfoque está en definir la ruta de envío del formulario, implementar la lógica del controlador para recibir y validar los datos, y finalmente, almacenarlos de forma segura en la base de datos.

1. 🌐 Configuración de la Ruta y Acción (Store)

El formulario de creación (create.blade.php) necesita un destino al cual enviar los datos para su procesamiento.

  • Ruta de Envío (action): En el archivo web.php, se define una nueva ruta que solo acepta el método POST para el envío de datos. Esta ruta apunta a la función store (almacenar) en el controlador de usuarios [02:34].

    PHP

    Route::post('usuarios', [UserController::class, 'store'])->name('admin.usuarios.store')->middleware('auth');

  • Destino del Formulario: El atributo action del formulario en create.blade.php se actualiza para apuntar a esta nueva ruta con {{ url('admin/usuarios') }} [04:10].

2. 🛡️ Doble Capa de Validación

Se implementa la validación de datos tanto en el frontend (navegador) como en el backend (Laravel) para garantizar la integridad de la información.

  • Validación Frontend: En el HTML, se añade el atributo required a los inputs del formulario. Esto proporciona una respuesta inmediata al usuario, pidiendo completar los campos [00:54].
  • Validación Backend (La Capa de Seguridad):
    • Se enfatiza que la validación frontend es vulnerable, ya que un atacante puede eliminar el atributo required mediante inspección del código [08:00].
    • La validación real se realiza en la función store() del controlador usando el método $request->validate() de Laravel [08:48].
CampoRegla de ValidaciónDescripción
namerequiredEl nombre es obligatorio.
emailrequired, unique:usersEl correo es obligatorio y debe ser único en la tabla users (no permite correos duplicados) [10:01].
passwordrequired, confirmedLa contraseña es obligatoria y debe coincidir con el campo de verificación de contraseña [11:00].

3. 💾 Almacenamiento Seguro de Datos (Eloquent)

Una vez que los datos pasan la validación, se procede a la inserción en la base de datos.

  • Instanciación del Modelo: Se crea un nuevo objeto (instancia) del modelo User [12:15].
  • Asignación de Atributos: Se asignan los valores recibidos del $request a los atributos del modelo [12:25].
  • Encriptación de Contraseña: Es el paso de seguridad más importante. La contraseña nunca se guarda como texto plano. Se utiliza la función Hash::make() de Laravel para encriptarla antes de guardarla [13:25].
Atributo del ModeloValor del FormularioNotas
$usuario->name$request->name 
$usuario->email$request->email 
$usuario->passwordHash::make($request->password)¡Encriptación obligatoria!
  • Guardado: Finalmente, el método $usuario->save() ejecuta la consulta INSERT INTO para guardar el nuevo registro en la base de datos [13:50].

El resultado final es la inserción exitosa de un nuevo usuario en la tabla, con la contraseña totalmente encriptada y verificando que el correo electrónico no esté duplicado [15:15].