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 clavellavejunto con otros posibles datos. Este array será validado y, si es necesario, ajustado.
Retorno
array:
Retorna el array$incon 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
$incontiene al menos un elemento (count($in) > 0). - Si es así, procede a verificar la existencia de la clave
llaveen el array.
- La función verifica si el array
-
Validación del valor de
llave:- Si la clave
llaveestá presente en el array, la función verifica que su valor sea una cadena (is_string($in['llave'])). - Si
llaveno 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
llaveutilizandotrim()para eliminar espacios en blanco al inicio y al final. - Si
llaveestá 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
llavecoincide 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;
}