Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Fatal error: Call to undefined method AdiantiDatabaseTRecord:: Segui o exemplo do vídeo e consegui criar o formulário, porém ao clicar no botão salvar aparece a mensagem: Fatal error: Call to undefined method AdiantiDatabaseTRecord::addAtribute() in C:xampphtdocsERPsysappmodelFilme.class.php on line 12. Segue o código da model: ...
WF
Fatal error: Call to undefined method AdiantiDatabaseTRecord::  
Fechado
Segui o exemplo do vídeo e consegui criar o formulário, porém ao clicar no botão salvar aparece a mensagem: Fatal error: Call to undefined method AdiantiDatabaseTRecord::addAtribute() in C:xampphtdocsERPsysappmodelFilme.class.php on line 12.

Segue o código da model:
  1. <?php
  2. class Filme extends TRecord
  3. {
  4.    const TABLENAME 'filme';
  5.    const PRIMARYKEY'id';
  6.    const IDPOLICY =  'max'// {max, serial}
  7.    
  8.     public function __construct(1241 NULL)
  9.     {
  10.         parent::__construct(1241);
  11.         parent::addAtribute('titulo'); // aqui é onde o erro é apontado
  12.         parent::addAtribute('diretor');
  13.         parent::addAtribute('id_suporte');
  14.         parent::addAtribute('id_genero');
  15.         parent::addAtribute('dt_lcto');
  16.         parent::addAtribute('duracao');
  17.    }
  18. }
  19. ?>

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


FC

Poste a Class que vc criou o form pois o model está correto configurou o ini etc...
RF

Código do FilmeForm.class.php

  1. <?php
  2. class FilmeForm extends TPage
  3. {
  4.     private $form;
  5.         
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         
  10.         $this->form = new TQuickForm('form_filme');
  11.         $this->form->setFormTitle('Filme');
  12.         $this->form->class 'tform';
  13.         //$this->form->style = 'width: 500px';
  14.         
  15.         $id = new TEntry('id');
  16.         $titulo = new TEntry('titulo');
  17.         $diretor = new TEntry('diretor');
  18.         $id_suporte = new TCombo('id_suporte');
  19.         $id_genero = new TCombo('id_genero');
  20.         $dt_lcto = new TDate('dt_lcto');
  21.         $duracao = new TEntry('duracao');
  22.         
  23.         $id->setEditable(FALSE);
  24.         $duracao->setMask('999');
  25.         $id_suporte->addItems(array(1=> 'DVD'2=>'Blu-ray'));
  26.         $id_genero->addItems(array(1=> 'Romance'2=>'Ficção'));
  27.         
  28.         $this->form->addQuickField('ID',$id,100);
  29.         $this->form->addQuickField('Titulo',$titulo,200);
  30.         $this->form->addQuickField('Diretor',$diretor,200);
  31.         $this->form->addQuickField('Suporte',$id_suporte,100);
  32.         $this->form->addQuickField('Genero',$id_genero,100);
  33.         $this->form->addQuickField('Lançamento',$dt_lcto,100);
  34.         $this->form->addQuickField('Duração',$duracao,100);
  35.         
  36.         $save = new TAction(array($this,'onSave'));
  37.         $this->form->addQuickAction('Salvar'$save'ico_save.png');
  38.         
  39.         parent::add($this->form);
  40.     }
  41.     
  42.     public function onSave()
  43.     {
  44.         try
  45.         {
  46.             TTransaction::open('teste');
  47.             
  48.             $object $this->form->getData('filme');
  49.             //var_dump($object);
  50.             
  51.             $object->store();
  52.             
  53.             $this->form->setData($object);
  54.             
  55.             new TMessage('info''Registro salvo com sucesso');
  56.             
  57.             TTransaction::close();
  58.         }
  59.         catch (Exception $e)
  60.         {
  61.             new TMessage('error'$e->getMessage());
  62.             TTransaction::rollback();
  63.         }
  64.     }
  65. }
  66. ?>



Código do teste.ini

host =
name = app/database/teste.db
user =
pass =
type = sqlite
FC

Faltou passar os campos no setFileds
$this->form->setFields(array($campos)


e dentro do onSave corrija esta linha

$object = $this->form->getData('filme');
por
$object = $this->form->getData('Filme');

o PHP é case sensitive.

Abraços...

RF

Boa tarde...

Agradecido pela atenção, mas eu revi umas duas vezes o vídeo do Pablo e não sei onde colocar esse código de "$this->form->setFields(array($campos)"; você poderia me passar aonde colocar?
FC

oi Robson

Realmente o que vc confundiu e eu me guiei é o seguinte quando vc estende a TPage a classe precisa passar o setFields

Ex:
class FilmeForm extends TPage

agora se vc fizer estender a TStandardForm não precisa altere assim então.

class FilmeForm extends TStandardForm

abraços...
RF

Obrigado, nada funciona.
PD

Robson,

Verifique se a versão do seu PHP é 5.5 ou superior.

Att,
Pablo
IM

O problema aqui é bem simples!

parent::addAtribute('titulo'); // aqui é onde o erro é apontado

O erro da linha acima é porque "addAtribute" tem 2 "t"... então o correto é:

parent::addAttribute('titulo');

Espero ter ajudado ;-)

at,
Isaac Mendes Jr.