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
Model Rack
Model Equipamento
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
- <?php
- class Localizacao extends TRecord
- {
- const TABLENAME = 'localizacao';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('descricao');
- }
- }
- ?>
Model Rack
- <?php
- class Rack extends TRecord
- {
- const TABLENAME = 'rack';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
- private $localizacao;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('tipo');
- parent::addAttribute('altura');
- parent::addAttribute('nr_patrimonio');
- parent::addAttribute('localizacao_id');
- }
- /**
- * Method set_localizacao
- * Sample of usage: $rack->localizacao = $object;
- * @param $object Instance of Localizacao
- */
- public function set_localizacao(Localizacao $object)
- {
- $this->localizacao = $object;
- $this->localizacao_id = $object->id;
- }
- /**
- * Method get_localizacao
- * Sample of usage: $rack->localizacao->attribute;
- * @returns Localizacao instance
- */
- public function get_localizacao()
- {
- // loads the associated object
- if (empty($this->localizacao))
- $this->localizacao = new Localizacao($this->localizacao_id);
- // returns the associated object
- return $this->localizacao;
- }
- }
- ?>
Model Equipamento
- <?php
- class Equipamento extends TRecord
- {
- const TABLENAME = 'equipamento';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
- private $modelo;
- private $rack;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('detalhe');
- parent::addAttribute('nr_serie');
- parent::addAttribute('nr_patrimonio');
- parent::addAttribute('anoaquisicao');
- parent::addAttribute('chave_nfe');
- parent::addAttribute('garantia');
- parent::addAttribute('modelo_id');
- parent::addAttribute('rack_id');
- }
- /**
- * Method set_rack
- * Sample of usage: $equipamento->rack = $object;
- * @param $object Instance of Rack
- */
- public function set_rack(Rack $object)
- {
- $this->rack = $object;
- $this->rack_id = $object->id;
- }
- /**
- * Method get_rack
- * Sample of usage: $equipamento->rack->attribute;
- * @returns Rack instance
- */
- public function get_rack()
- {
- // loads the associated object
- if (empty($this->rack))
- $this->rack = new Rack($this->rack_id);
- // returns the associated object
- return $this->rack;
- }
- }
- ?>
Olá Ivan, funcionou perfeitamente.
Muitíssimo obrigado Ivan!!!!