TDBMultiSearch não exibe o nome dos Papéis - Módulo de Pessoas Olá! Estou migrando o módulo Pessoas para uma base de dados em MySQL mas estou com um problema no campo papeis_id. O método onSave funciona normal mas no onEdit, o PessoaForm exibe apenas os id's e não os nomes dos papéis. Instância do TDBMultiSearch ...
FL
TDBMultiSearch não exibe o nome dos Papéis - Módulo de Pessoas  
Olá!
Estou migrando o módulo Pessoas para uma base de dados em MySQL mas estou com um problema no campo papeis_id.
O método onSave funciona normal mas no onEdit, o PessoaForm exibe apenas os id's e não os nomes dos papéis.


Instância do TDBMultiSearch
 
  1. <?php
  2. $field_papeis_id = new TDBMultiSearch('papeis_id', 'millweb', 'Papel', 'id', 'nome', 'nome', $filter2);
  3. ?>


onEdit()

 
  1. <?php
  2. public function onEdit($param)
  3. {
  4. try
  5. {
  6. if (isset($param['key']))
  7. {
  8. $key = $param['key'];
  9. TTransaction::open('millweb');
  10. $object = new Pessoa($key);
  11. $object->papeis_id = PessoaPapel::where('pessoa_id', '=', $object->id)->getIndexedArray('papel_id');
  12. $this->form->setData($object);
  13. // force fire events
  14. $data = new stdClass;
  15. $data->estado_id = $object->cidade->estado->id;
  16. $data->cidade_id = $object->cidade_id;
  17. TForm::sendData('form_Pessoa', $data);
  18. TTransaction::close();
  19. }
  20. else
  21. {
  22. $this->form->clear(TRUE);
  23. }
  24. }
  25. catch (Exception $e)
  26. {
  27. new TMessage('error', $e->getMessage());
  28. TTransaction::rollback();
  29. }
  30. }
  31. ?>

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)


NR

Tá usando a última versão do Adianti? Testei aqui e funcionou.

Se não for a última versão e não quiser atualizar, tente passar um array associativo(id - descricao) para o campo:
 
  1. <?php
  2. $object->papeis_id = Papel::where('id','in',"(SELECT papel_id from pessoa_papel where pessoa_id = {$object->id})")->getIndexedArray('id','nome');
  3. ?>