RB
Pegar dados de tabela relacionada
Olá,
Estou tentado carregar item de tabela relacionada ( contatoweb), porém sem sucesso.
Segue foonte abaixo:
Grid onde estou tentando carregar os dados
model cliente
model Pessoa
Model ContatoWeb
Estou tentado carregar item de tabela relacionada ( contatoweb), porém sem sucesso.
Segue foonte abaixo:
Grid onde estou tentando carregar os dados
- <?php
- class DatagridCheckView extends TPage
- {
- private $datagrid;
- private $pageNavigation;
- private $loaded;
- private $form;
- private $editar;
- public function __construct()
- {
- parent::__construct();
- $this->datagrid = new TDataGrid;
- //$this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->style="width: 100%"; // Responsive
- $telefone = new TDataGridColumn('pessoa->contato->telefone','Telefone','left'); //esta linha esta funcionando
- $email = new TDataGridColumn('pessoa->contato_web->email','E-mail','left');// esta linha não funciona
- $this->datagrid->addColumn($telefone);
- $this->datagrid->addColumn($email);
- $this->datagrid->addColumn($site);
- $this->datagrid->createModel();
- ....
- ?>
model cliente
- <?php
- class Cliente extends TRecord
- {
- const TABLENAME = 'cliente';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'serial'; // {max, serial}
- private $pessoa;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('pessoa_id');
- parent::addAttribute('organizacao_id');
- parent::addAttribute('criacao');
- parent::addAttribute('atualizacao');
- parent::addAttribute('ativo');
- }
- /**
- * Method set_pessoa
- * Sample of usage: $cliente->pessoa = $object;
- * @param $object Instance of Pessoa
- */
- public function set_pessoa(Pessoa $object)
- {
- $this->pessoa = $object;
- $this->pessoa_id = $object->id;
- }
- /**
- * Method get_pessoa
- * Sample of usage: $cliente->pessoa->attribute;
- * @returns Pessoa instance
- */
- public function get_pessoa()
- {
- // loads the associated object
- if (empty($this->pessoa))
- $this->pessoa = new Pessoa($this->pessoa_id);
- // returns the associated object
- return $this->pessoa;
- }
- ?>
model Pessoa
- <?php
- class Pessoa extends TRecord
- {
- const TABLENAME = 'pessoa';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'serial'; // {max, serial}
- private $pessoa;
- private $contato;
- private $contato_web;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('nome');
- parent::addAttribute('data_nascimento');
- parent::addAttribute('organizacao_id');
- parent::addAttribute('criacao');
- parent::addAttribute('atualizacao');
- parent::addAttribute('ativo');
- parent::addAttribute('tipo_pessoa_id');
- }
- public function get_contato()
- {
- if (empty($this->contato))
- {
- $contato = Contato::where('pessoa_id','=',$this->id)
- ->where($this->tipo_pessoa_id,'=',1)->load();
- $this->contato = $contato[0];
- }
- return $this->contato;
- }
- /**
- * Method get_contato_web
- * Sample of usage: $pessoa->contato_web->attribute;
- * @returns Contatoweb instance
- */
- public function get_contato_web()
- {
- if (empty($this->contato_web))
- {
- $contatoweb = ContatoWeb::where('pessoa_id','=',$this->id)
- ->where($this->tipo_pessoa_id,'=',1)
- ->load();
- $this->contatoweb = $contatoweb[0];
- }
- return $this->contato_web;
- }
- }
- ?>
Model ContatoWeb
- <?php
- <?php
- /**
- * Contatoweb Active Record
- * @author <your-name-here>
- */
- class ContatoWeb extends TRecord
- {
- const TABLENAME = 'contatoweb';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'serial'; // {max, serial}
- private $pessoa;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('pessoa_id');
- parent::addAttribute('email');
- parent::addAttribute('site');
- }
- /**
- * Method set_pessoa
- * Sample of usage: $contatoweb->pessoa = $object;
- * @param $object Instance of Pessoa
- */
- public function set_pessoa(Pessoa $object)
- {
- $this->pessoa = $object;
- $this->pessoa_id = $object->id;
- }
- /**
- * Method get_pessoa
- * Sample of usage: $contatoweb->pessoa->attribute;
- * @returns Pessoa instance
- */
- public function get_pessoa()
- {
- // loads the associated object
- if (empty($this->pessoa))
- $this->pessoa = new Pessoa($this->pessoa_id);
- // returns the associated object
- return $this->pessoa;
- }
- }
- ?>
Acho que é erro de digitação:
Nataniel,
To ficando maluco....
já ajustei porem sem sucesso...
segue trecho Pessoa
Grid