Get data as Array and not as object - Codeigniter

Asked

Viewed 179 times

1

Hello!
I intend to get the table data tbl_devedor_parcela, using the field negociacao_id, thus, I need to recover data from table tbl_devedor_parcela as array de objetos. The first table ID tbl_devedor_parcela, is being recovered as array de objetos, but the rest, are being recovered only as objeto.

inserir a descrição da imagem aqui

How do I recover everything like array de objetos ?

Follow tables;

tbl_debtor trading

DROP TABLE IF EXISTS `tbl_devedor_negociacao`;
CREATE TABLE IF NOT EXISTS `tbl_devedor_negociacao` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `dt_negociacao` DATE NULL DEFAULT NULL,
  `atualizar` VARCHAR(5) NULL DEFAULT NULL,
  `id_finalizacao` INT(11) NULL DEFAULT NULL,
  `contrato_id` INT(11) NULL DEFAULT NULL,
  `crud` VARCHAR(2) NULL DEFAULT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 1;

tbl_debtor tranche

DROP TABLE IF EXISTS `tbl_devedor_parcela`;
CREATE TABLE IF NOT EXISTS `tbl_devedor_parcela` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `dt_vencimento` DATE NULL DEFAULT NULL,
  `num_parcela` VARCHAR(20) NULL DEFAULT NULL,
  `valor` VARCHAR(20) NULL DEFAULT NULL,
  `negociacao_id` INT(11) NULL DEFAULT NULL,
  `atraso` VARCHAR(20) NULL DEFAULT NULL,
  `crud` VARCHAR(2) NULL DEFAULT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 1;

Model Code

//Fonte - Início
//Negociações
$id_contratos = array_map(function($item) {
    return $item['id'];
}, $result['contratos']);
$negociacoes = $this->obter_negociacao($id_contratos);    

//Parcelas
$id_parcelas = array_map(function($item) {
    return $item['id'];
}, $negociacoes);
$parcelas = $this->obter_parcela($id_parcelas);

//view
$id_contratos = array_map(function($item) {
    return $item['id'];
}, $result['contratos']);
$empresa = "Banco Semear";
$view["empresa"] = $empresa;

for ($i = 0; $i < count($result['contratos']); $i++) {
    $id = $result['contratos'][$i]['id'];
    $result['contratos'][$i]['view'] =
        array_filter($view, function($a) {
            return $a;
        });
}

for ($i = 0; $i < count($negociacoes); $i++) {
    $id = $negociacoes[$i]['id'];
    $negociacoes[$i]['parcelas'] =
        array_filter($parcelas, function($a) use($id) {
            return $a['negociacao_id'] == $id;
        });
}

for ($i = 0; $i < count($result['contratos']); $i++) {
    $id = $result['contratos'][$i]['id'];
    $result['contratos'][$i]['negociacoes'] =
        array_filter($negociacoes, function($a) use($id) {
            return $a['contrato_id'] == $id;
        });
}

return $result;
//Fonte - Fim

//Obter negociações
public function obter_negociacao($id) {
    $this->db->from($this->tbl_devedor_negociacao);
    $this->db->select("tbl_devedor_negociacao.*, IF(tbl_devedor_negociacao.crud = 'C', 'R', 'C') as crud", FALSE);
    if (is_array($id)) {
        $this->db->where_in('contrato_id', $id);
    }
    else
    {
        $this->db->where('contrato_id', $id);
    }
    $this->db-> order_by('contrato_id');
    $query = $this->db->get();
    return $query->result_array();
}
//Obter parcela
public function obter_parcela($id) {
    $this->db->from($this->tbl_devedor_parcela);
    $this->db->select("tbl_devedor_parcela.*, IF(tbl_devedor_parcela.crud = 'C', 'R', 'C') as crud", FALSE);
    if (is_array($id)) {
        $this->db->where_in('negociacao_id', $id);
    }
    else
    {
        $this->db->where('negociacao_id', $id);
    }

    $query = $this->db->get('');
    return $query->result_array();
}

1 answer

2


  • 2

    perfect, worked.. Thanks

Browser other questions tagged

You are not signed in. Login or sign up in order to post.