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.
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:
$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 previamenteRequisito 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:
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:
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:
{
"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
Publicar un comentario