28. Guardando los datos del Cliente

 Guardando los datos del Cliente

¡Hola a todos! 馃憢

En este post, vamos a ver c贸mo guardar los datos del cliente en la base de datos despu茅s de haber realizado todas las validaciones necesarias. Ya tenemos todo funcionando correctamente: la validaci贸n, la creaci贸n del cliente y la generaci贸n de la llave secreta. ¡Ahora es momento de persistir esta informaci贸n!

Implementando el m茅todo guardar con Eloquent

Primero, necesitamos instanciar nuestro modelo Clientes en el controlador. Recuerden que este modelo debe estar disponible, as铆 que asegur茅monos de tener el archivo Clientes.php en la carpeta correspondiente.

php
use App\Models\Clientes;

// Dentro de nuestro m茅todo
$cliente = new Clientes();

Mapeando los campos de la base de datos

Nuestra tabla clientes tiene los siguientes campos que debemos llenar:

  • primer_nombre

  • primer_apellido

  • email

  • id_cliente

  • llave_secreta

Asignamos los valores correspondientes:

php
$cliente->primer_nombre = $datos['primer_nombre'];
$cliente->primer_apellido = $datos['primer_apellido'];
$cliente->email = $datos['email'];
$cliente->id_cliente = $id_cliente; // Variable que generamos previamente
$cliente->llave_secreta = $llave_secreta; // Variable que generamos previamente

Requisito importante de Eloquent

¡Atenci贸n! Eloquent requiere que nuestras tablas tengan dos columnas espec铆ficas para timestamps:

  • created_at (timestamp, valor predeterminado NULL)

  • updated_at (timestamp, valor predeterminado NULL)

Aseg煤rense de agregar estas columnas si no existen.

Guardando y retornando la respuesta

Ejecutamos el m茅todo save() y manejamos la respuesta:

php
if ($cliente->save()) {
    return response()->json([
        'status' => 200,
        'detalle' => 'Registro exitoso. Tome sus credenciales y guardelas.',
        'credenciales' => [
            'id_cliente' => $id_cliente,
            'llave_secreta' => $llave_secreta
        ]
    ]);
}

Validaci贸n adicional

Aunque ya tenemos validaciones con reglas "required", es buena pr谩ctica agregar una verificaci贸n adicional:

php
if (empty($datos['primer_nombre']) || empty($datos['primer_apellido']) || empty($datos['email'])) {
    return response()->json([
        'status' => 404,
        'detalle' => 'Registro con errores'
    ]);
}

Probando el endpoint

Al enviar una solicitud POST a nuestra API con los datos correctos, recibiremos una respuesta como esta:

json
{
    "status": 200,
    "detalle": "Registro exitoso. Tome sus credenciales y guardelas.",
    "credenciales": {
        "id_cliente": "ABC123",
        "llave_secreta": "sk_test_xyz456"
    }
}

Si intentamos registrar un email que ya existe, recibiremos un error gracias a nuestra validaci贸n de unicidad.

Conclusi贸n

Hemos implementado correctamente el guardado de informaci贸n del cliente usando Eloquent, con las validaciones necesarias y un formato de respuesta organizado que facilita el consumo de nuestra API.

¿Tienen alguna pregunta o sugerencia? ¡D茅jenla en los comentarios! 馃憞

#PHP #Laravel #Eloquent #API #DesarrolloWeb #Backend

Comentarios

Entradas m谩s populares de este blog

crear controladores separados para API y Web

Laravel tanto para web como para API al mismo tiempo.

Creaci贸n de una API RESTful con Laravel (sin autenticaci贸n)