Relacionamento entre objetos? Olá pessoal, quero exibir um resultado sem ter que utlizar instruções SQL, a situação é a seguinte: Cargo ...
IV
Relacionamento entre objetos?  
Fechado
Olá pessoal, quero exibir um resultado sem ter que utlizar instruções SQL, a situação é a seguinte:

Cargo
 
  1. <?php
  2. class Cargo extends TRecord {
  3. const TABLENAME = 'cargo';
  4. const PRIMARYKEY= 'id';
  5. const IDPOLICY = 'max';
  6. public function __construct(2407 = NULL, $callObjectLoad = TRUE) {
  7. parent::__construct(2407, $callObjectLoad);
  8. parent::addAttribute('descricao');
  9. }
  10. }
  11. ?>


Funcionario
 
  1. <?php
  2. class Funcionario extends TRecord {
  3. const TABLENAME = 'funcionario';
  4. const PRIMARYKEY= 'id';
  5. const IDPOLICY = 'max';
  6. private $cargo;
  7. public function __construct(2407 = NULL) {
  8. parent::__construct(2407);
  9. parent::addAttribute('nome');
  10. parent::addAttribute('cargo_id');
  11. }
  12. public function set_cargo(Cargo $object) {
  13. $this->cargo = $object;
  14. $this->cargo_id = $object->id;
  15. }
  16. public function get_cargo() {
  17. if (empty($this->cargo))
  18. $this->cargo = new Cargo($this->cargo_id);
  19. return $this->cargo;
  20. }
  21. public function get_cargo_descricao() {
  22. if (empty($this->cargo))
  23. $this->cargo = new Cargo($this->cargo_id);
  24. return $this->cargo->descricao;
  25. }
  26. }
  27. ?>


Pagamento
 
  1. <?php
  2. class Pagamento extends TRecord {
  3. const TABLENAME = 'pagamento';
  4. const PRIMARYKEY= 'id';
  5. const IDPOLICY = 'max';
  6. private $funcionario;
  7. public function __construct(2407 = NULL, $callObjectLoad = TRUE) {
  8. parent::__construct(2407, $callObjectLoad);
  9. parent::addAttribute('id');
  10. parent::addAttribute('funcionario_id');
  11. parent::addAttribute('valor');
  12. }
  13. public function set_funcionario(Funcionario $object) {
  14. $this->funcionario = $object;
  15. $this->funcionario_id = $object->id;
  16. }
  17. public function get_funcionario() {
  18. if (empty($this->funcionario))
  19. $this->funcionario = new Funcionario($this->funcionario_id);
  20. return $this->funcionario;
  21. }
  22. public function get_funcionario_nome() {
  23. if (empty($this->funcionario))
  24. $this->funcionario = new Funcionario($this->funcionario_id);
  25. return $this->funcionario->nome;
  26. }
  27. public function get_funcionario_cargo() {
  28. if (empty($this->funcionario))
  29. $this->funcionario = new Funcionario($this->funcionario_id);
  30. return $this->funcionario->get_cargo_descricao;
  31. }
  32. }
  33. ?>


Estou tentando exibir os dados no formulário de pagamento: "ID", "Nome", "Descricao do Cargo" e "Valor".
Mas o campo de descrição do cargo retorna vazio.
Como disse queria uma forma de fazer sem precisar a recorrer a uma instrução sql, se alguém tiver um dica eu agradeço.

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

 
  1. <?php
  2. public function get_funcionario_cargo() {
  3. if (empty($this->funcionario))
  4. $this->funcionario = new Funcionario($this->funcionario_id);
  5. return $this->funcionario->cargo_descricao;
  6. }
  7. ?>


No return você estava chamando get_cargo_descricao, deixe só cargo_descricao e teste novamente
IV

Nataniel Rabaioli, obrigado pela atenção!