Pegar campo que está relacionado indiretamente Boa noite! Pessoal , tenho 3 tabelas (Equipamento, Rack e Localizacao) A tabela Equipamento possui um relacionamo com a tabela Rack e a tabela Rack possui um relacionamento com a tabela Localização. Desta forma eu não consigo pegar o campo descricao da Tabela Localizacao ,pois no meu model Equipamento eu apenas tenho relacionamento com a Tabela ...
WR
Pegar campo que está relacionado indiretamente  
Boa noite!
Pessoal , tenho 3 tabelas (Equipamento, Rack e Localizacao)
A tabela Equipamento possui um relacionamo com a tabela Rack e a tabela Rack possui um relacionamento com a tabela Localização.

Desta forma eu não consigo pegar o campo descricao da Tabela Localizacao ,pois no meu model Equipamento eu apenas tenho relacionamento com a Tabela Rack
Tem como eu conseguir pegar esse campo descrição da tabela Localização e mostra no datagrid do form Equipamento ??

Meus Models estão assim:

Model Localização

 
  1. <?php
  2. class Localizacao extends TRecord
  3. {
  4. const TABLENAME = 'localizacao';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'max'; // {max, serial}
  7. /**
  8. * Constructor method
  9. */
  10. public function __construct($id = NULL, $callObjectLoad = TRUE)
  11. {
  12. parent::__construct($id, $callObjectLoad);
  13. parent::addAttribute('descricao');
  14. }
  15. }
  16. ?>


Model Rack

 
  1. <?php
  2. class Rack extends TRecord
  3. {
  4. const TABLENAME = 'rack';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'max'; // {max, serial}
  7. private $localizacao;
  8. /**
  9. * Constructor method
  10. */
  11. public function __construct($id = NULL, $callObjectLoad = TRUE)
  12. {
  13. parent::__construct($id, $callObjectLoad);
  14. parent::addAttribute('tipo');
  15. parent::addAttribute('altura');
  16. parent::addAttribute('nr_patrimonio');
  17. parent::addAttribute('localizacao_id');
  18. }
  19. /**
  20. * Method set_localizacao
  21. * Sample of usage: $rack->localizacao = $object;
  22. * @param $object Instance of Localizacao
  23. */
  24. public function set_localizacao(Localizacao $object)
  25. {
  26. $this->localizacao = $object;
  27. $this->localizacao_id = $object->id;
  28. }
  29. /**
  30. * Method get_localizacao
  31. * Sample of usage: $rack->localizacao->attribute;
  32. * @returns Localizacao instance
  33. */
  34. public function get_localizacao()
  35. {
  36. // loads the associated object
  37. if (empty($this->localizacao))
  38. $this->localizacao = new Localizacao($this->localizacao_id);
  39. // returns the associated object
  40. return $this->localizacao;
  41. }
  42. }
  43. ?>


Model Equipamento

 
  1. <?php
  2. class Equipamento extends TRecord
  3. {
  4. const TABLENAME = 'equipamento';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'max'; // {max, serial}
  7. private $modelo;
  8. private $rack;
  9. /**
  10. * Constructor method
  11. */
  12. public function __construct($id = NULL, $callObjectLoad = TRUE)
  13. {
  14. parent::__construct($id, $callObjectLoad);
  15. parent::addAttribute('detalhe');
  16. parent::addAttribute('nr_serie');
  17. parent::addAttribute('nr_patrimonio');
  18. parent::addAttribute('anoaquisicao');
  19. parent::addAttribute('chave_nfe');
  20. parent::addAttribute('garantia');
  21. parent::addAttribute('modelo_id');
  22. parent::addAttribute('rack_id');
  23. }
  24. /**
  25. * Method set_rack
  26. * Sample of usage: $equipamento->rack = $object;
  27. * @param $object Instance of Rack
  28. */
  29. public function set_rack(Rack $object)
  30. {
  31. $this->rack = $object;
  32. $this->rack_id = $object->id;
  33. }
  34. /**
  35. * Method get_rack
  36. * Sample of usage: $equipamento->rack->attribute;
  37. * @returns Rack instance
  38. */
  39. public function get_rack()
  40. {
  41. // loads the associated object
  42. if (empty($this->rack))
  43. $this->rack = new Rack($this->rack_id);
  44. // returns the associated object
  45. return $this->rack;
  46. }
  47. }
  48. ?>


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)


IF

 
  1. <?php
  2. rack->localizacao->descricao
  3. ?>
WR

Olá Ivan, funcionou perfeitamente.
Muitíssimo obrigado Ivan!!!!