Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Como tratar um array para apresentar no TMultiField? 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...
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?

  1. <?php
  2.     function onEdit($param) {
  3.         try {
  4.             if (isset($param['key'])) {
  5.                 $key $param['key'];
  6.                 TTransaction::open('permission');
  7.                 $object = new Entrada($key);
  8.                 
  9.                 $object->produtos $object->getProdutos();
  10.                 var_dump($object->produtos); die();
  11.                 $object->dataentrada TDate::date2br($object->dataentrada);
  12.                 $object->datanotafiscal TDate::date2br($object->datanotafiscal);
  13.                 $this->form->setData($object);
  14.                 TTransaction::close();
  15.             } else {
  16.                 $this->form->clear();
  17.             }
  18.         } catch (Exception $e) {
  19.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  20.             TTransaction::rollback();
  21.         }
  22.     }
  23. ?>


  1. <?php
  2.     /**
  3.      * Method getProdutos
  4.      * @return Collection de Produto
  5.      */
  6.     public function getProdutos()
  7.     {
  8.         $produtos = array();
  9.                 
  10.         $repository = new TRepository('EntradaItem');
  11.         $criteria = new TCriteria;
  12.         $criteria->add(new TFilter('id_entrada''='$this->id));
  13.         $entrada_produtos $repository->load($criteria);
  14.         
  15.         if ($entrada_produtos)
  16.         {
  17.             foreach ($entrada_produtos as $entr_prod)
  18.             {
  19.                 try {                                    
  20.                 TTransaction::open('permission');
  21.                 $conn TTransaction::get();
  22.                 $sth $conn->prepare('SELECT PROD.ID, PROD.DESCRICAO, ITENS.QTDE, ITENS.VALORUNITARIO
  23.                                         FROM estoque_produto PROD
  24.                                         INNER JOIN estoque_itens_entrada ITENS
  25.                                         ON ITENS.ID_PRODUTO = PROD.ID
  26.                                         WHERE PROD.ID = ?');
  27.                 
  28.                 $sth->execute(array($entr_prod->id_produto));
  29.                 $result $sth->fetchAll();
  30.                                 
  31.                               
  32.                 TTransaction::close();
  33.                 } catch (Exception $ex) {
  34.                     new TMessage('error''<b>Error</b> ' $e->getMessage());
  35.                 }               
  36.             }            
  37.         }      
  38.         return $result;
  39.     }
  40. ?>


Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


PD

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