Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Convertendo dados do select para json Bom dia! Pessoal ,estou usando o exemplo do tutor para passar o resultado de uma consulta para o formato json, mas só consigo um único registro conforme o exemplo do tutor, gostaria de pegar todos os registros retornados da consulta. ...
WR
Convertendo dados do select para json  
Fechado
Bom dia!
Pessoal ,estou usando o exemplo do tutor para passar o resultado de uma consulta para o formato json, mas só consigo um único registro conforme o exemplo do tutor, gostaria de pegar todos os registros retornados da consulta.


  1. <?php  
  2. TTransaction::open('projetox');
  3.           
  4.             // Load object
  5.             $cidade_id 4500;
  6.             $estado_id 24;
  7.             $criteria = new TCriteria
  8.             $criteria->add(new TFilter('cidade_id''='$cidade_id)); 
  9.             $criteria->add(new TFilter('estado_id''='$estado_id));
  10.             
  11.             $repository = new TRepository('Localajuda'); 
  12.             $dados$repository->load($criteria); //ASSIM NÃO FUNCIONA
  13.             $dadosLocalajuda::find(1);// ASSIM FUNCIONA Retornando 1 registro
  14.             
  15.             // if found
  16.             if ($dados)
  17.             {
  18.                 // show as JSON
  19.                 print_r$dados->toJson() );
  20.             }
  21.             TTransaction::close();
  22. ?>


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 (11)


MG

Wilson
Qual a exception é apresentada na linha 12?
WR

Marcelo, dá esse erro
Fatal error: Call to a member function toJson() on array
IF

Vc tem que usar foreach:

  1. <?php
  2. if ($dados)
  3. {
  4.       foreach ($dados as $json)
  5.       {
  6.           // show as JSON
  7.           print_r$json->toJson() );
  8.        }
  9. }
  10. ?>
WR

Mas não é na linha 12 é na linha 19
Abraço
WR

Deu certo da forma que o Ivan postou.

Obrigado!!

IF

Vc pode estar uma variável para ir concatenando os valores assim:

  1. <?php
  2. $itens '';
  3.             if ($dados)
  4.             {
  5.                 foreach ($dados as $json)
  6.                 {
  7.                     // show as JSON
  8.                     
  9.                     $itens .= $json->toJson() ;
  10.                 }
  11.             }
  12.             var_dump($itens);
  13.             TTransaction::close();
  14. ?>

MG

Eu pensei que o problema estava no $criteria que poderia estar retornando um erro.
Mas a solução do Ivan está correta mesmo.
Que bom que funcionou.
Abraços
WR

Só mais uma dúvida , usando criteria eu consigo selecionar somente alguns específicos campos para passar para o formato json??
ou devo fazer um sql manual (select id,nome,endereco from localajuda)
Hoje eu não incomodo mais! rsrsrsrs

Abraços
IF

Wilson, não vi nenhuma forma a não ser com um sql manual mesmo. Ou se vc quiser trabalhar sem o sql, crie uma view com os campos que vc quer e carregue normalmente como se fosse um objeto, essa seria a minha escolha, veja esse tópico de como criar views e usar no Adianti, eu particularmente evito de usar sql manual no meu sistema.

www.adianti.com.br/forum/pt/view_879?relatorios-com-queries-complexa
MG

Wilson

Outra alternativa, aliás que eu uso quando preciso deste recurso seria:

  1. <?php
  2.     public function getCoordenadorPorCentroDeCusto($centrocustoid) {
  3.         try
  4.         {
  5.             TTransaction::open('workflow');
  6.             $repository = new TRepository('Coordenador');
  7.             $criteria = new TCriteria();
  8.             $criteria->add(new TFilter('centrocustoid','=',$centrocustoid));
  9.             $result $repository->load($criteria);
  10.             foreach ($result as $dados) {
  11.                 $this->id               $dados->id;
  12.                 $this->coordenador      $dados->coordenador;
  13.                 $this->diretor          $dados->diretor;
  14.                 $this->superintendente  $dados->superintendente;
  15.                 $this->gerente          $dados->gerente;
  16.                 $this->login            $dados->login;
  17.                 $this->dataatualizacao  $dados->dataatualizacao;
  18.             }
  19.             TTransaction::close();
  20.         }
  21.         catch (Exception $e)
  22.         {
  23.             print "Erro : " $e->getCode() . " - Mensagem : " $e->getMessage();
  24.         }
  25.     }
  26. ?>
WR

Obrigado pessoal pela grande ajuda de vocês, espero um dia poder retribuir a ajuda . Vou ter que estudar muito. Vocês são feras!!

Abraços