Inscrições abertas para nosso Webinar anual Adianti Framework 2024!
Clique aqui para saber mais
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? ...
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?

  1. <?php
  2. //montando o TMultiField de telefones, no formulário                       
  3.         $telefones = new TMultiField('telefones');
  4.         $telefones->setClass('TelefoneSocio'); 
  5.         $telefones->setHeight(160);                  
  6.         $telefones->setOrientation('horizontal');           
  7.         
  8.         $telefones_ddd = new TEntry('telefones_ddd');
  9.         $telefones_ddd->setSize(70);
  10.         $telefones_ddd->setMaxLength(2);
  11.         
  12.         $telefones_numero = new TEntry('telefones_numero');
  13.         $telefones_numero->setSize(150);
  14.         
  15.         $telefones->addField('telefones_ddd''DDD'$telefones_ddd70);
  16.         $telefones->addField('telefones_numero''Numero'$telefones_numero150TRUE);
  17.          
  18.         //neste ponto o TMultifield foi alterado para receber o id e nome da operadora      
  19.         $telefones_operadora = new TComboCombined('telefones_operadora_id''telefones_operadora_nome');
  20.         $telefones_operadora->setSize(150);
  21.         
  22.         try
  23.         {
  24.             TTransaction::open('sistema');
  25.             $items Operadora::getObjects();
  26.     
  27.             $array = array();        
  28.             foreach ($items as $item)
  29.             {
  30.                 $array[$item->id] = $item->nome;
  31.             }
  32.             
  33.             $telefones_operadora->addItems$array );     
  34.             $telefones->addField('telefones_operadora_id''Operadora',  $telefones_operadora174);
  35.             TTransaction::close();
  36.         }
  37.         catch (Exception $e)
  38.         {
  39.             new TMessage('error'$e->getMessage());
  40.         }
  41. ?>




no metodo onSave, adiciona os telefones ao objeto

  1. <?php
  2.          //no metodo onSave, adiciona os telefones ao objeto
  3.             if( $data->telefones )
  4.             {
  5.                 foreach( $data->telefones as $telefone )
  6.                 {
  7.                     $obj_tel                 = new TelefoneSocio;
  8.                     $obj_tel->ddd             $telefone->telefones_ddd;
  9.                     $obj_tel->numero         $telefone->telefones_numero;
  10.                     $obj_tel->operadora_id     $telefone->telefones_operadora_id;
  11.                     $obj_tel->socio_id         $socio->id;
  12.                     
  13.                     $socio->addTelefoneSocio$obj_tel );
  14.                     $obj_tel->store();
  15.                 }
  16.             }
  17. ?>



no metodo onEdit deveria carregar os telefones, mas não faz

  1. <?php
  2.                //adiciona os telefones ao objeto
  3.                 $object->telefones $object->getTelefoneSocios();  
  4. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


NR

Acho que o problema está no nome dos campos da multifield. Por exemplo:
  1. <?php
  2. $telefones_ddd = new TEntry('telefones_ddd');
  3. ?>


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.
IU

Olá Ricardo,
Tudo bem ?
Posta pra nós o método onEdit completo por favor ?
IU

Ricardo,

em
  1. <?php 
  2. getTelefoneSocios();
  3. ?>

o correto não seria
  1. <?php getTelefoneSocio() ?>


???