Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matheus P.

Fazer 2 tabelas virar somente 1 array (CakePHP)

Recommended Posts

Galera, eu preciso mesclar duas tabelas que possuem alguns campos (os que eu preciso) iguais, sendo uma de entrada (entries) e uma de saída (sales) de produtos, isso para fazer o controle de estoque, com saída, entrada e total de peças atuais.

 

Cada uma, eu preciso puxar o id, p_total e created (order asc), após isso, exibir em uma view com apenas um forearch.

 

Preciso que elas se tornem como se fossem uma, para ser exibida em apenas uma tabela no view ordenadas pela data de criação.

 

Estou utilizando a versão 2.x do CakePHP para esse projeto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, preciso fazer somente uma array com essas duas tabelas, vamos supor que na entries tenha somente um registro assim:

 

id -> 1

p_total -> 20

created -> 2016-05-25

 

E na sales, outro assim:

 

id -> 1

p_total -> 50

created -> 2016-05-24

 

Array / View:

ID - TOTAL - DATA

1 / 50 / 24.05.16

1 / 25 / 25.05.16

 

Preciso que me retorne uma array com essas 2 informações ordenadas pela data de criação, são duas tabelas diferentes que possuem alguns campos iguais, e preciso montar uma array com esses campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq não da select com inner join ordenando pela data? vai ser uma query só..ai só jogar no array

 

O problema é que eu não tenho como relacionar elas, pois uma não tem relação com a outra além dos campos iguais, porém, trabalham individualmente. Eu não tenho um "Sale.id => Entry.sale_id", por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu até cheguei fazer isso, utilizando o $var = array_merge($sales, $entries), mas por exemplo, como eu vou exibir esses resultados em odem cronológicas, sem contar o problema do controller, pois ele iria gerar 2 normalmente, ficando $var['Entry']['id'] e $var['Sale]['id']

Array ( [0] => Array ( [Sale] => Array ( [id] => 2 [p_total] => 2 [created] => 2016-05-20 13:48:51 ) ) [1] => Array ( [Entry] => Array ( [id] => 2 [p_total] => -6 [created] => 2016-05-25 12:41:37 ) ) )
$result = array_merge($sales, $entries);

foreach ($result as $r) {
    $r['Controller']['p_total'];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente precisará usar model->query com algum sub-select , não consigo ajudar muito agora, corrido aqui

 

Sem problemas, deu uma luz, consegui fazer tudo que eu queria, menos ordenar pela data, eu conseguindo fazer isso, vai ficar ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.