/** * Vuelca la información de la tabla $table en la base de datos * para armar los atributos y meta-data del ActiveRecord * * @param string $table * @return boolean */ protected function _dump_info($table, $schema = '') { $this->_dump_lock = true; if (!count(self::get_meta_data($table))) { $meta_data = $this->db->describe_table($table, $schema); if ($meta_data) { self::set_meta_data($table, $meta_data); } } foreach (self::get_meta_data($table) as $field) { $this->fields[] = $field['Field']; $aliasAux = $field['Field']; if ($field['Key'] == 'PRI') { $this->primary_key[] = $field['Field']; $this->alias[$field['Field']] = 'Código'; } else { $this->non_primary[] = $field['Field']; } /** * Si se indica que no puede ser nulo, pero se indica un * valor por defecto, entonces no se incluye en la lista, ya que * al colocar un valor por defecto, el campo nunca sera nulo * */ if ($field['Null'] == 'NO' && !(isset($field['Default']) && $field['Default'])) { $this->not_null[] = $field['Field']; } if (isset($field['Default']) && $field['Default']) { $this->_with_default[] = $field['Field']; } if ($field['Type']) { $this->_data_type[$field['Field']] = strtolower($field['Type']); } if (substr($field['Field'], strlen($field['Field']) - 3, 3) == '_at') { $this->_at[] = $field['Field']; $aliasAux = substr($field['Field'], 0, -3); } if (substr($field['Field'], strlen($field['Field']) - 3, 3) == '_in') { $this->_in[] = $field['Field']; $aliasAux = substr($field['Field'], 0, -3); } if (substr($field['Field'], strlen($field['Field']) - 3, 3) == '_id') { $aliasAux = substr($field['Field'], 0, -3); } //humanizando el alias $this->alias[$field['Field']] = ucwords(strtr($aliasAux, '_-', ' ')); } $this->_dump_lock = false; return true; }