Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
- Ajuda - Mostrar valor na datagrid Boa tarde! Estou tentando mostrar do nome do id que foi gravado na minha tabela. Esse ID é da tabela system_user, pois estou utilizando o Template 3. Porém quando eu chamo a classe e o atributo, conforme orientado não me retorna nada... fica em branco.. O que estou fazendo de errado...
PL
- Ajuda - Mostrar valor na datagrid  
Boa tarde!

Estou tentando mostrar do nome do id que foi gravado na minha tabela. Esse ID é da tabela system_user, pois estou utilizando o Template 3.
Porém quando eu chamo a classe e o atributo, conforme orientado não me retorna nada... fica em branco..

 
  1. <?php
  2. $column_id_gestor = new TDataGridColumn('system_user->name', 'Id Gestor', 'right');
  3. ?>


O que estou fazendo de errado?

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


MG

Qual o nome da foreign key da sua tabela relacionando com "SystemUser"?
PL

No caso é id_gestor
MG

Pamela

Como está seu model "Gestor"?

Poderia postá-lo?

PL

Marcelo, no caso, é um formulário de preenchimento de justificativa de ausência de funcionário... Então eu criei uma tabela RH_AUSENCIA, na qual ela tem associação com a System_User...
ID_GESTOR é chave estrangeira do id do System User
Eu gerei a classe pelo SudioPro... e os formulários tbm...

Eu fiz um teste no qual criei um GET para a variável id_gestor receber o id do system_user... funcionou... mas não sei se é a forma correta então eu não deixei no model...

 
  1. <?php
  2. class RhAusencia extends TRecord
  3. {
  4. const TABLENAME = 'rh_ausencia';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. private $system_user;
  8. private $system_user_group;
  9. public function __construct($id = NULL, $callObjectLoad = TRUE)
  10. {
  11. parent::__construct($id, $callObjectLoad);
  12. parent::addAttribute('data_falta');
  13. parent::addAttribute('justificativa');
  14. parent::addAttribute('situacao');
  15. parent::addAttribute('id_user');
  16. parent::addAttribute('id_gestor');
  17. }
  18. public function set_system_user(SystemUser $object)
  19. {
  20. $this->system_user = $object;
  21. $this->system_user_id = $object->id;
  22. }
  23. public function get_system_user()
  24. {
  25. if (empty($this->system_user))
  26. $this->system_user = new SystemUser($this->system_user_id);
  27. return $this->system_user;
  28. }
  29. public function set_system_user_group(SystemUserGroup $object)
  30. {
  31. $this->system_user_group = $object;
  32. $this->system_user_group_id = $object->id;
  33. }
  34. public function get_system_user_group()
  35. {
  36. if (empty($this->system_user_group))
  37. $this->system_user_group = new SystemUserGroup($this->system_user_group_id);
  38. return $this->system_user_group;
  39. }
  40. }
  41. ?>
MG

Aí que está o problema.
Veja na linha 34 "this->system_user = new SystemUser($this->system_user_id);"
O $thiis->sustem_user_id" não existem,no seu model, existe o "$this->id_gestor"

O Adianti ao criar o relacionamento sempre irá se basera no <model> + '_id'.
Então ele criou no relacionamento a coluna "$this->system_user_id".
Altere e dever´dar certo..

Talvez utilizando o exemplo do relacionamento, você deva criar

// Getter e Setter
public function set_gestor();
public function get_gestor()

Deixar o relacionamento criaro e alterar a coluna da sua tabela e model "id_user" para "system_user_id", assim aproveita o relacionamento já existente.

</model>
PL

Isso mesmo Marcelo!

Criei os Getter e Setter do Gestor e funcionou!!!
Fiz a alteração que sugeriu sobre o ''id_user"! Valeu!!

Obrigada pela atenção!!!
MG

Não por isso!
Sucesso!
GM

certo, mas... como ficou então aqui:

$column_id_gestor = new TDataGridColumn('system_user->name', 'Id Gestor', 'right');

mudou para qual sintaxe?