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 clave llave 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 clave llave. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. 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.
  2. 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.
  3. Limpieza y validación de la cadena llave:

    • La función limpia el valor de llave utilizando trim() 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.
  4. Mapeo del valor de llave:

    • Si llave coincide con una clave en la propiedad columnas_extra, su valor es reemplazado por el valor correspondiente en columnas_extra.
  5. Retorno del array ajustado:

    • La función retorna el array $in, que puede haber sido ajustado según las validaciones y mapeos realizados.

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;
    }