Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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.     
  9.     /**
  10.      * Constructor method
  11.      */
  12.     public function __construct($id NULL$callObjectLoad TRUE)
  13.     {
  14.         parent::__construct($id$callObjectLoad);
  15.         parent::addAttribute('descricao');
  16.     }
  17. }
  18. ?>


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.     
  8.     
  9.     private $localizacao;
  10.     /**
  11.      * Constructor method
  12.      */
  13.     public function __construct($id NULL$callObjectLoad TRUE)
  14.     {
  15.         parent::__construct($id$callObjectLoad);
  16.         parent::addAttribute('tipo');
  17.         parent::addAttribute('altura');
  18.         parent::addAttribute('nr_patrimonio');
  19.         parent::addAttribute('localizacao_id');
  20.     }
  21.     
  22.     /**
  23.      * Method set_localizacao
  24.      * Sample of usage: $rack->localizacao = $object;
  25.      * @param $object Instance of Localizacao
  26.      */
  27.     public function set_localizacao(Localizacao $object)
  28.     {
  29.         $this->localizacao $object;
  30.         $this->localizacao_id $object->id;
  31.     }
  32.     
  33.     /**
  34.      * Method get_localizacao
  35.      * Sample of usage: $rack->localizacao->attribute;
  36.      * @returns Localizacao instance
  37.      */
  38.     public function get_localizacao()
  39.     {
  40.         // loads the associated object
  41.         if (empty($this->localizacao))
  42.             $this->localizacao = new Localizacao($this->localizacao_id);
  43.     
  44.         // returns the associated object
  45.         return $this->localizacao;
  46.     }
  47.     
  48. }
  49. ?>


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.     
  8.     
  9.     private $modelo;
  10.     private $rack;
  11.     /**
  12.      * Constructor method
  13.      */
  14.     public function __construct($id NULL$callObjectLoad TRUE)
  15.     {
  16.         parent::__construct($id$callObjectLoad);
  17.         parent::addAttribute('detalhe');
  18.         parent::addAttribute('nr_serie');
  19.         parent::addAttribute('nr_patrimonio');
  20.         parent::addAttribute('anoaquisicao');
  21.         parent::addAttribute('chave_nfe');
  22.         parent::addAttribute('garantia');
  23.         parent::addAttribute('modelo_id');
  24.         parent::addAttribute('rack_id');
  25.     }
  26.     
  27.      /**
  28.      * Method set_rack
  29.      * Sample of usage: $equipamento->rack = $object;
  30.      * @param $object Instance of Rack
  31.      */
  32.     public function set_rack(Rack $object)
  33.     {
  34.         $this->rack $object;
  35.         $this->rack_id $object->id;
  36.     }
  37.     
  38.     /**
  39.      * Method get_rack
  40.      * Sample of usage: $equipamento->rack->attribute;
  41.      * @returns Rack instance
  42.      */
  43.     public function get_rack()
  44.     {
  45.         // loads the associated object
  46.         if (empty($this->rack))
  47.             $this->rack = new Rack($this->rack_id);
  48.     
  49.         // returns the associated object
  50.         return $this->rack;
  51.     }
  52. }
  53. ?>


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


IF

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

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