Get data as Array and not as object - Codeigniter

1

Hello! I want to get the data from the tbl_devedor_parcela table, using the negociacao_id field, so I need to retrieve the data from the tbl_devedor_parcela table as array de objetos . The first ID of the tbl_devedor_parcela table is being retrieved as array de objetos , but the others are being retrieved only as objeto .

HowdoIrecovereverythingasarraydeobjetos?

Followingtables;

tbl_device_business

DROPTABLEIFEXISTS'tbl_devedor_negociacao';CREATETABLEIFNOTEXISTS'tbl_devedor_negociacao'('id'INT(11)NOTNULLAUTO_INCREMENT,'dt_negociacao'DATENULLDEFAULTNULL,'atualizar'VARCHAR(5)NULLDEFAULTNULL,'id_finalizacao'INT(11)NULLDEFAULTNULL,'contrato_id'INT(11)NULLDEFAULTNULL,'crud'VARCHAR(2)NULLDEFAULTNULL,PRIMARYKEY('id'))ENGINE=InnoDBAUTO_INCREMENT=1;

tbl_device_parcela

DROPTABLEIFEXISTS'tbl_devedor_parcela';CREATETABLEIFNOTEXISTS'tbl_devedor_parcela'('id'INT(11)NOTNULLAUTO_INCREMENT,'dt_vencimento'DATENULLDEFAULTNULL,'num_parcela'VARCHAR(20)NULLDEFAULTNULL,'valor'VARCHAR(20)NULLDEFAULTNULL,'negociacao_id'INT(11)NULLDEFAULTNULL,'atraso'VARCHAR(20)NULLDEFAULTNULL,'crud'VARCHAR(2)NULLDEFAULTNULL,PRIMARYKEY('id'))ENGINE=InnoDBAUTO_INCREMENT=1;

ModelCode

//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();
}
    
asked by anonymous 06.11.2017 / 15:41

1 answer

2

Must be added along with array_filter or array_values , so that the array is also created, eg:

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

References

07.11.2017 / 16:41