Salvar id em outro campo Preciso salvar o id gerado em outro campo da mesma tabela. Tem como?...
LA
Salvar id em outro campo  
Preciso salvar o id gerado em outro campo da mesma tabela. Tem como?

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


IF

Oi Luis, vc vai ter que sobrepor o método store:

 
  1. <?php
  2. public function store()
  3. {
  4. parent::store();
  5. $this->seu_campo = $this->id;
  6. parent::store();
  7. }
  8. ?>
LA

Ola Ivan, obrigado!

Onde chamo esta função?

 
  1. <?php
  2. class Testes extends TRecord
  3. {
  4. const TABLENAME = 'public.testes';
  5. const PRIMARYKEY= 'id_teste';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. public function __construct($id = NULL, $callObjectLoad = TRUE)
  8. {
  9. parent::__construct($id, $callObjectLoad);
  10. parent::addAttribute('cod_teste');
  11. parent::addAttribute('cod2_teste');
  12. parent::addAttribute('descricao');
  13. }
  14. }
  15. ?>


 
  1. <?php
  2. class TestesForm extends TPage {
  3. protected $form;
  4. use Adianti\Base\AdiantiStandardFormTrait;
  5. function __construct() {
  6. parent::__construct();
  7. $this->setDatabase('cx');
  8. $this->setActiveRecord('Testes');
  9. $this->form = new BootstrapFormBuilder("form_Testes");
  10. $this->form->class = 'tform';
  11. $this->form->style = 'display: table; width: 100%;';
  12. $this->form->setFormTitle('Testes');
  13. // Create the form fields
  14. $id_teste = new TEntry('id_teste');
  15. $cod_teste = new TEntry('cod_teste');
  16. $cod2_teste = new TEntry('cod2_teste');
  17. $descricao = new TEntry('descricao');
  18. $id_teste->setEditable(FALSE);
  19. // Add the fields
  20. $this->form->addFields([new TLabel('Id:')], [$id_teste], [new TLabel('Código:')], [$cod_teste]);
  21. $this->form->addFields([new TLabel('Descrição:')], [$descricao]);
  22. // Create the form actions
  23. $this->form->addAction(_t('Save'), new TAction(array($this, 'onSave')), 'ico_save.png');
  24. $this->form->addAction(_t('New'), new TAction(array($this, 'onNew')), 'ico_new2.png');
  25. $container = new TVBox;
  26. $container->style = 'width: 95%;';
  27. $container->add($this->form);
  28. parent::add($container);
  29. }
  30. public function store() {
  31. parent::store();
  32. $this->cod_teste = $this->id_teste;
  33. parent::store();
  34. }
  35. public function onNew() {
  36. $padroes = new StdClass;
  37. TForm::sendData('form_Testes', $padroes);
  38. }
  39. }
  40. ?>
IF

Oi Luis, esqueci de mencionar, vc chama essa função no seu model Testes

 
  1. <?php
  2. class Testes extends TRecord
  3. {
  4. const TABLENAME = 'public.testes';
  5. const PRIMARYKEY= 'id_teste';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. public function __construct($id = NULL, $callObjectLoad = TRUE)
  8. {
  9. parent::__construct($id, $callObjectLoad);
  10. parent::addAttribute('cod_teste');
  11. parent::addAttribute('cod2_teste');
  12. parent::addAttribute('descricao');
  13. }
  14. public function store() {
  15. parent::store();
  16. $this->cod_teste = $this->id_teste;
  17. parent::store();
  18. }
  19. }
  20. ?>