Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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.
pq não da select com inner join ordenando pela data? vai ser uma query só..ai só jogar no array
> 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.Já que as tabelas não tem relação, faça 2 selects, une os arrays com resultados e seta para a view
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'];
}Possivelmente precisará usar model->query com algum sub-select , não consigo ajudar muito agora, corrido aqui
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
Não entendi a parte de "se tornarem uma". Poderia explicar melhor? Seria somar p_total ?