administrador.base.orm.columnas.campos_tabla - gamboamartin/administrador GitHub Wiki

campos_tabla

La función campos_tabla se encarga de obtener las columnas de una tabla específica de la base de datos y asignarlas al atributo campos_tabla del modelo proporcionado. Si se proporciona un nombre de tabla válido, la función invoca obten_columnas para recuperar la información estructural de las columnas y maneja cualquier error que pueda surgir en el proceso.

Signatura


final public function campos_tabla(modelo $modelo, string $tabla): array

Parámetros

  • $modelo (modelo): Una instancia de la clase modelo que representa el modelo de la base de datos.
  • $tabla (string): El nombre de la tabla de la base de datos de la cual se desean obtener los nombres de las columnas.

Retorna

  • Tipo: array
  • Descripción:
    • Retorna un array con las columnas parseadas (columnas_parseadas) de la tabla si la operación es exitosa.
    • En caso de error, retorna un array que contiene la información del error.

Explicación Detallada

  • Validación del Nombre de la Tabla:

    • La función comienza verificando si el nombre de la tabla ($tabla) no está vacío.
  • Obtención de Columnas:

    • Si el nombre de la tabla es válido, se llama a la función obten_columnas() para obtener las columnas de la tabla especificada.
    • Si ocurre un error durante la obtención de las columnas (verificado por errores::$error), se genera y retorna un array con el error.
  • Asignación de Columnas al Modelo:

    • Si las columnas se obtienen correctamente, se asignan al atributo campos_tabla del modelo proporcionado.
  • Retorno del Resultado:

    • Finalmente, la función retorna el array campos_tabla del modelo, ya sea que se haya obtenido y asignado en este proceso o que ya existiera previamente.
  • Manejo de Errores

    • Los errores se manejan a través del método $this->error->error(), que retorna un array con detalles sobre el error.
    • Si se detecta un error, la función detiene la ejecución normal y retorna un array con el error específico.

Ejemplos

$modelo = new modelo();
$nombre_tabla = "productos";
$campos = $this->campos_tabla($modelo, $nombre_tabla);

if (isset($campos['error'])) {
    // Manejo del error
    print_r($campos);
} else {
    // Operar con los campos de la tabla
    print_r($campos);
}

Código de la Función

final public function campos_tabla(modelo $modelo, string $tabla): array
    {
        if($tabla !=='') {

            $data = $this->obten_columnas(modelo:$modelo, tabla_original: $tabla);
            if (errores::$error) {
                return $this->error->error(mensaje: 'Error al obtener columnas de '.$tabla, data: $data);
            }
            $modelo->campos_tabla = $data->columnas_parseadas;
        }
        return $modelo->campos_tabla;
    }