Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Duvidas de persistência Boa tarde pessoal...Estou com um problema na hora de salvar dados agregados, quando efetuo e salvamento só salva o número de contrato e quando salvo outro registro ele sobre escreve o anterior; já testei com o bando Filme do exemplo das aulas e funciona tudo certinho mas com o meu banco não funciona. Coloquei o modelo relacional em anexo, agradeço muito se alguém puder me ajudar. Valeu ...
JF
Duvidas de persistência  
Boa tarde pessoal...Estou com um problema na hora de salvar dados agregados, quando efetuo e salvamento só salva o número de contrato e quando salvo outro registro ele sobre escreve o anterior; já testei com o bando Filme do exemplo das aulas e funciona tudo certinho mas com o meu banco não funciona. Coloquei o modelo relacional em anexo, agradeço muito se alguém puder me ajudar. Valeu

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (6)


MG

Jeferson
Você já comparou os models criado por vc os model do exemplo Filmes?
JF

Já várias vezes hehehe...faz uns dias q não consigo fazer isso e o problema que o banco não foi criado por mim e não posso alterar ele. vou postar a minha model de contrato pra vc dá uma olhada.


  1. <?php
  2. class Contrato extends TRecord
  3. {
  4.     const TABLENAME 'contratos';
  5.     const PRIMARYKEY 'contrato_old';
  6.     const IDPOLICY   'max';
  7.     
  8.     private $cliente;
  9.     private $cob_contrato;
  10.     
  11.     public function __construct$contrato_old NULL )
  12.     {
  13.         parent::__construct$contrato_old );
  14.         
  15.         parent::addAttribute('contrato');
  16.         parent::addAttribute('matr_interna');
  17.         parent::addAttribute('valor');
  18.     }
  19.     
  20.     public function store()
  21.     {
  22.         parent::store();
  23.         parent::saveAggregate('Cob_Contrato''contrato''codigo'$this->contrato_old$this->cob_contrato);
  24.         
  25.         //parent::saveAggregate('FilmeAtor'   , 'filme_id', 'ator_id', $this->id     , $this->atores);
  26.         
  27.     }
  28.     
  29.     public function addCob_contrato(Cob_contrato $object)
  30.     {
  31.         $this->cob_contrato[] =  $object;
  32.     }
  33.     
  34.     
  35.     public function get_cliente()
  36.     {
  37.         if( empty($this->cliente) )
  38.         {
  39.             $this->cliente = new Cliente($this->matr_interna);
  40.         }
  41.         return  $this->cliente;    
  42.     }
  43.     
  44.      
  45.     
  46.     
  47. }//TRecord
  48. ?>
MG

Veja, pelo modelo que passou as primary key são vachars?
É isso mesmo? Não deveria ser "int" auto-increment?
JF

Pois é Marcelo geralmente são integer mas nesse banco é Varchar mesmo, porém já criei um banco teste como primary Key integer e tbm não funcionou .
MG

Tudo bem, eu entendo, mas se é varchar, você deverá criar um controle manual para numerar ou diferenciar os contratos.
Portanto o controle de criar novas linhas não poderá seguir os padrões do fw.
A primary key auto-increment faz isso, a cada novo registro ele criar uma nova linha na tabela.

Minha sugestão é criar uma primary key int auto-increment, mantendo o relacionamento o campo varchar.
WP

Adianti + PK que não seja numerica não rola