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
.
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();
}
perfect, worked.. Thanks
– Wagner Fillio