Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 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.         
  6.         $this->seu_campo $this->id;
  7.         
  8.         parent::store();
  9.     }
  10. ?>
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.     
  8.    public function __construct($id NULL$callObjectLoad TRUE)
  9.    {
  10.        parent::__construct($id$callObjectLoad);
  11.        parent::addAttribute('cod_teste');
  12.        parent::addAttribute('cod2_teste');
  13.        parent::addAttribute('descricao');
  14.    }
  15. }
  16. ?>


  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.     
  8.    public function __construct($id NULL$callObjectLoad TRUE)
  9.    {
  10.        parent::__construct($id$callObjectLoad);
  11.        parent::addAttribute('cod_teste');
  12.        parent::addAttribute('cod2_teste');
  13.        parent::addAttribute('descricao');
  14.    }
  15.    public function store() {
  16.         parent::store();
  17.         $this->cod_teste $this->id_teste;
  18.         parent::store();
  19.     }
  20. }
  21. ?>