EB
Como tratar um array para apresentar no TMultiField?
Fechado
Boa noite.
Estou precisando de um help pessoal!
PROBLEMA: Estou trabalhando com um TMultiField (lista os produtos de um cadastro de entrada de produtos), sendo que quando vou editar eu preciso carregar nele dados de duas tabelas: Produto e Itens_Entrada.
Eu precisei fazer uma query manual, pra carregar os dados dessas duas tabelas. O problema é que quando vou pegar essas informações para apresentar no TMultiField é apresentado a seguinte mensagem: Notice: Trying to get property of non-object in C:Program Files/wamp/www/almoxarifado/libadiantiwidgetformTMultiField.php on line 145
Quando dou um var_dump no onEdit o array está vindo conforme a imagem em anexo abaixo.
Então eu gostaria de saber como devo tratar esses dados na função getProdutos para que os mesmos sejam apresentados no TMultiField?
Estou precisando de um help pessoal!
PROBLEMA: Estou trabalhando com um TMultiField (lista os produtos de um cadastro de entrada de produtos), sendo que quando vou editar eu preciso carregar nele dados de duas tabelas: Produto e Itens_Entrada.
Eu precisei fazer uma query manual, pra carregar os dados dessas duas tabelas. O problema é que quando vou pegar essas informações para apresentar no TMultiField é apresentado a seguinte mensagem: Notice: Trying to get property of non-object in C:Program Files/wamp/www/almoxarifado/libadiantiwidgetformTMultiField.php on line 145
Quando dou um var_dump no onEdit o array está vindo conforme a imagem em anexo abaixo.
Então eu gostaria de saber como devo tratar esses dados na função getProdutos para que os mesmos sejam apresentados no TMultiField?
- <?php
- function onEdit($param) {
- try {
- if (isset($param['key'])) {
- $key = $param['key'];
- TTransaction::open('permission');
- $object = new Entrada($key);
- $object->produtos = $object->getProdutos();
- var_dump($object->produtos); die();
- $object->dataentrada = TDate::date2br($object->dataentrada);
- $object->datanotafiscal = TDate::date2br($object->datanotafiscal);
- $this->form->setData($object);
- TTransaction::close();
- } else {
- $this->form->clear();
- }
- } catch (Exception $e) {
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- TTransaction::rollback();
- }
- }
- ?>
- <?php
- /**
- * Method getProdutos
- * @return Collection de Produto
- */
- public function getProdutos()
- {
- $produtos = array();
- $repository = new TRepository('EntradaItem');
- $criteria = new TCriteria;
- $criteria->add(new TFilter('id_entrada', '=', $this->id));
- $entrada_produtos = $repository->load($criteria);
- if ($entrada_produtos)
- {
- foreach ($entrada_produtos as $entr_prod)
- {
- try {
- TTransaction::open('permission');
- $conn = TTransaction::get();
- $sth = $conn->prepare('SELECT PROD.ID, PROD.DESCRICAO, ITENS.QTDE, ITENS.VALORUNITARIO
- FROM estoque_produto PROD
- INNER JOIN estoque_itens_entrada ITENS
- ON ITENS.ID_PRODUTO = PROD.ID
- WHERE PROD.ID = ?');
- $sth->execute(array($entr_prod->id_produto));
- $result = $sth->fetchAll();
- TTransaction::close();
- } catch (Exception $ex) {
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- }
- }
- }
- return $result;
- }
- ?>
Edilaine,
O formato a ser recebido pela TMultiField é um array de objetos, e o método fetchAll() da PDO retorna um vetor comum.
Experimente ->fetchAll( PDO::FETCH_CLASS );
Att,
Pablo