Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Preencher TDBMultiSearch no evente onEdit Olá pessoal, gostaria de saber qual seria o modo mais adequado de preencher um TDBMultiSearch, que uso para selecionar a cidade. Hoje estou fazendo assim: ...
A
Preencher TDBMultiSearch no evente onEdit  
Olá pessoal, gostaria de saber qual seria o modo mais adequado de preencher um TDBMultiSearch, que uso para selecionar a cidade.

Hoje estou fazendo assim:

  1. <?php
  2. public function onEdit($param)
  3.     {
  4.         try
  5.         {
  6.             if (isset($param['key']))
  7.             {
  8.                 TTransaction::open($this->database);
  9.                 $class $this->activeRecord;
  10.                 $object = new $class($param['key']);
  11.                 // treats City
  12.                 $city = new City($object->city_id);
  13.                 $object->city_id = [ $city->id => $city->name.' / '.$city->state->abbreviation ];
  14.                 $this->form->setData($object);
  15.                 TTransaction::close();
  16.             }
  17.             else
  18.             {
  19.                 $this->form->clear();
  20.             }
  21.         }
  22.         catch (Exception $e)
  23.         {
  24.             new TMessage('error'$e->getMessage());
  25.             TTransaction::rollback();
  26.         }
  27.     }
  28. ?>


Porém, na parte
  1. <?php  $object->city_id = [ $city->id => $city->name.' / '.$city->state->abbreviation ]; ?>
, o membro STATE tem visibilidade privada e o acesso dessa forma não é adequado, apesar de funcionar.

Minha dúvida é se há uma forma melhor (correta) de implementar isso.

Grato pela atenção dispensada.

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 (2)


NR

Acho que está correto desta maneira. Há um exemplo no tutor que faz praticamente a mesma coisa.

Quanto ao atributo privado não se preocupe, pois ao acessar $city->state você não está acessando diretamente a varíável state. O framework identifica que existe uma função get_state e chama a função ao invés de acessar a variável diretamente.
A

Muito obrigado Nataniel.

Tenha um ótimo dia.