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
onEdit()
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
- <?php
- $field_papeis_id = new TDBMultiSearch('papeis_id', 'millweb', 'Papel', 'id', 'nome', 'nome', $filter2);
- ?>
onEdit()
- <?php
- public function onEdit($param)
- {
- try
- {
- if (isset($param['key']))
- {
- $key = $param['key'];
- TTransaction::open('millweb');
- $object = new Pessoa($key);
- $object->papeis_id = PessoaPapel::where('pessoa_id', '=', $object->id)->getIndexedArray('papel_id');
- $this->form->setData($object);
- // force fire events
- $data = new stdClass;
- $data->estado_id = $object->cidade->estado->id;
- $data->cidade_id = $object->cidade_id;
- TForm::sendData('form_Pessoa', $data);
- TTransaction::close();
- }
- else
- {
- $this->form->clear(TRUE);
- }
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- ?>
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: