administrador.modelado.joins.data_para_join.21.13.0 - gamboamartin/administrador GitHub Wiki

data_para_join

Esta función prepara los datos necesarios para generar una cláusula JOIN en una consulta SQL a partir de un array que contiene información sobre las tablas involucradas en el JOIN.

Signatura

private function data_para_join(array $tabla_join): array|string

Parámetros

$tabla_join (array): Un array que contiene información sobre las tablas base y de enlace, así como otros detalles necesarios para generar la cláusula JOIN.

Retorna

  • string|array: La función devuelve un array que contiene la cláusula JOIN preparada para ser utilizada en una consulta SQL. En caso de encontrar un error, devuelve un string que contiene detalles del error.

Explicación Detallada

  • Validación de las keys: Se valida la existencia de las keys necesarias en el array $tabla_join, que son 'tabla_base' y 'tabla_enlace'.
  • Generación de datos para JOIN: Se llama a la función data_join para generar los datos necesarios a partir del array $tabla_join.
  • Generación de la cláusula JOIN: Se utilizan los datos obtenidos para llamar a la función genera_join y generar la cláusula JOIN.
  • Devolución de los datos para JOIN: Se devuelve la cláusula JOIN generada.

Ejemplos

// Definición del array $tabla_join
$tabla_join = array(
    'tabla_base' => 'models\\usuarios',
    'tabla_enlace' => 'models\\pedidos',
    'campo_renombrado' => 'id_usuario',
    'campo_tabla_base_id' => 'id',
    'tabla_renombrada' => 'u'
);

// Llamada a la función data_para_join
$join_data = data_para_join($tabla_join);

echo "Cláusula JOIN generada: " . $join_data;


/*
En este ejemplo, se proporciona un array $tabla_join que contiene información sobre las tablas involucradas en el JOIN. Se llama a la función data_para_join con este array como argumento, y el resultado se asigna a la variable $join_data, que luego se imprime.
*/

Código de la Función

private function data_para_join(array $tabla_join): array|string
    {
        $keys = array('tabla_base','tabla_enlace');
        $valida = $this->validacion->valida_existencia_keys( keys:$keys, registro: $tabla_join);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar $tabla_join',data: $valida);
        }

        $data_join = $this->data_join(tabla_join: $tabla_join);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar data',data:  $data_join);
        }

        $data = $this->genera_join(tabla: $data_join->tabla_base, tabla_enlace: $data_join->tabla_enlace,
            campo_renombrado: $data_join->campo_renombrado, campo_tabla_base_id: $data_join->campo_tabla_base_id,
            renombrada: $data_join->tabla_renombre);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar join', data: $data);
        }
        return $data;
    }