Lançado Adianti Framework 7.6!
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. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 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() ?>


???