RC
TMultifield não está carregando os objetos de Composição
Boa noite a todos,
preparei um TMultifield personalizado para cadastrar telefones de uma pessoa.
Consigo salvar os dados normalmente, mas no onEdit esses dados não são carregados.
Alguém já passou por isso?
no metodo onSave, adiciona os telefones ao objeto
no metodo onEdit deveria carregar os telefones, mas não faz
preparei um TMultifield personalizado para cadastrar telefones de uma pessoa.
Consigo salvar os dados normalmente, mas no onEdit esses dados não são carregados.
Alguém já passou por isso?
- <?php
- //montando o TMultiField de telefones, no formulário
- $telefones = new TMultiField('telefones');
- $telefones->setClass('TelefoneSocio');
- $telefones->setHeight(160);
- $telefones->setOrientation('horizontal');
- $telefones_ddd = new TEntry('telefones_ddd');
- $telefones_ddd->setSize(70);
- $telefones_ddd->setMaxLength(2);
- $telefones_numero = new TEntry('telefones_numero');
- $telefones_numero->setSize(150);
- $telefones->addField('telefones_ddd', 'DDD', $telefones_ddd, 70);
- $telefones->addField('telefones_numero', 'Numero', $telefones_numero, 150, TRUE);
- //neste ponto o TMultifield foi alterado para receber o id e nome da operadora
- $telefones_operadora = new TComboCombined('telefones_operadora_id', 'telefones_operadora_nome');
- $telefones_operadora->setSize(150);
- try
- {
- TTransaction::open('sistema');
- $items = Operadora::getObjects();
- $array = array();
- foreach ($items as $item)
- {
- $array[$item->id] = $item->nome;
- }
- $telefones_operadora->addItems( $array );
- $telefones->addField('telefones_operadora_id', 'Operadora', $telefones_operadora, 174);
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- ?>
no metodo onSave, adiciona os telefones ao objeto
- <?php
- //no metodo onSave, adiciona os telefones ao objeto
- if( $data->telefones )
- {
- foreach( $data->telefones as $telefone )
- {
- $obj_tel = new TelefoneSocio;
- $obj_tel->ddd = $telefone->telefones_ddd;
- $obj_tel->numero = $telefone->telefones_numero;
- $obj_tel->operadora_id = $telefone->telefones_operadora_id;
- $obj_tel->socio_id = $socio->id;
- $socio->addTelefoneSocio( $obj_tel );
- $obj_tel->store();
- }
- }
- ?>
no metodo onEdit deveria carregar os telefones, mas não faz
- <?php
- //adiciona os telefones ao objeto
- $object->telefones = $object->getTelefoneSocios();
- ?>
Acho que o problema está no nome dos campos da multifield. Por exemplo:
Como no modelo TelefoneSocio o campo se chama ddd, na hora da edição o framework vai buscar por esse nome(ddd) ao invés de telefones_ddd.
Tente renomear os campos usando o mesmo nome do modelo TelefoneSocio.
Olá Ricardo,
Tudo bem ?
Posta pra nós o método onEdit completo por favor ?
Ricardo,
em
o correto não seria
???