administrador.base.orm.modelo.in_llave - gamboamartin/administrador GitHub Wiki
in_llave
La función in_llave
es una función privada que valida y ajusta el valor de la clave llave
dentro de un array. Si la clave llave
está presente en el array de entrada, la función asegura que sea una cadena no vacía y, si corresponde, la reemplaza con un valor mapeado desde la propiedad columnas_extra
de la clase.
Signatura
private function in_llave(array $in): array
Parámetros
array $in
:
Un array que contiene la clavellave
junto con otros posibles datos. Este array será validado y, si es necesario, ajustado.
Retorno
array
:
Retorna el array$in
con posibles ajustes en el valor de la clavellave
. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Verificación inicial del array:
- La función verifica si el array
$in
contiene al menos un elemento (count($in) > 0
). - Si es así, procede a verificar la existencia de la clave
llave
en el array.
- La función verifica si el array
-
Validación del valor de
llave
:- Si la clave
llave
está presente en el array, la función verifica que su valor sea una cadena (is_string($in['llave'])
). - Si
llave
no es una cadena, se genera un mensaje de error y se retorna un array con el mensaje de error.
- Si la clave
-
Limpieza y validación de la cadena
llave
:- La función limpia el valor de
llave
utilizandotrim()
para eliminar espacios en blanco al inicio y al final. - Si
llave
está vacía después de la limpieza, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función limpia el valor de
-
Mapeo del valor de
llave
:- Si
llave
coincide con una clave en la propiedadcolumnas_extra
, su valor es reemplazado por el valor correspondiente encolumnas_extra
.
- Si
-
Retorno del array ajustado:
- La función retorna el array
$in
, que puede haber sido ajustado según las validaciones y mapeos realizados.
- La función retorna el array
Ejemplos
$in = ['llave' => 'nombre'];
$this->columnas_extra = ['nombre' => 'nombre_completo'];
$resultado = $this->in_llave($in);
// Resultado esperado:
// ['llave' => 'nombre_completo']
// Un array de error si ocurre algún problema.
Código de la Función
private function in_llave(array $in): array
{
if(count($in)>0) {
if(isset($in['llave'])){
if(!is_string($in['llave'])){
return $this->error->error(mensaje: 'Error in[llave] debe ser un string',data: $in,
es_final: true);
}
$in['llave'] = trim($in['llave']);
if($in['llave'] === ''){
return $this->error->error(mensaje: 'Error in[llave] esta vacia',data: $in, es_final: true);
}
if(array_key_exists($in['llave'], $this->columnas_extra)){
$in['llave'] = $this->columnas_extra[$in['llave']];
}
}
}
return $in;
}