LL
Method Filme::addAtribute() not found
preciso de ajuda, estou tentando fazer o exemplo ensinado pelo autor do livro disponibilizado no youtube através do link: https://www.youtube.com/watch?v=ccnKCrhB1io. Mas estou tendo esse problema: Method Filme::addAtribute() not found.
- <?php
- // Arquivo de acesso ao banco
- // nome do arquivo = filmesMySQL.ini
- host = "127.0.0.1"
- name = "filmes"
- user = "root"
- pass = ""
- type = "mysql"
- ?>
- <?php
- // Classe filme
- class Filme extends TRecord{
- const TABLENAME = 'filme';
- const PRIMARYKEY = 'id';
- const IDPOLICY = 'max';
-
- public function __construct($id = NULL){
-
- parent::__construct($id);
-
- parent::addAtribute('titulo');
- parent::addAtribute('diretor');
- parent::addAtribute('id_suporte');
- parent::addAtribute('id_genero');
- parent::addAtribute('dt_lcto');
- parent::addAtribute('duracao');
- }
- }
- ?>
- <?php
- //Formulário
- class FilmeForm extends TPage{
- private $form;
-
- public function __construct(){
- parent::__construct();
-
- $this->form = new TQuickForm('form_filme');
- $this->form->setFormTitle('Filme');
- $this->form->class = 'tform';
- //$this->form->style = 'width: 500px';
-
- $id = new TEntry('id');
- $titulo = new TEntry ('titulo');
- $diretor = new TEntry ('diretor');
- $id_suporte = new TCombo('id_suporte');
- $id_genero = new TCombo('id_genero');
- $dt_lcto = new TDate('dt_lcto');
- $duracao = new TEntry('duracao');
-
- $id->setEditable(FALSE);
- $id_suporte->addItems( array(1=>'DVD', 2=>'Blu-ray') );
- $id_genero->addItems( array(1=>'Romance', 2=>'Ação', 3=>'Aventura'));
- $duracao->setMask('999');
-
- $this->form->addQuickField('ID', $id, 100);
- $this->form->addQuickField('Titulo', $titulo, 200);
- $this->form->addQuickField('Diretor', $diretor, 200);
- $this->form->addQuickField('Suporte', $id_suporte, 100);
- $this->form->addQuickField('Gênero', $id_genero, 100);
- $this->form->addQuickField('Lançamento', $dt_lcto, 100);
- $this->form->addQuickField('Duração', $duracao, 100);
-
- $save = new TAction( array($this, "onSave") );
- $this->form->addQuickAction('Salvar', $save, 'ico_save.png');
-
- parent::add($this->form);
- }
-
- public function onSave(){
-
- try{
- TTransaction::open('filmesMySQL'); //nome do arquivo que contem a conexão
- $object = $this->form->getData('Filme');
-
- $object->store();
-
- $this->form->setData( $object );
-
- new TMessage('info', 'Registro salvo com sucesso!');
- var_dump($object);
- TTransaction::close();
- }
- catch (Exception $e){
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
-
- }
- }
- ?>
Bom dia.
Você já verificou se todos os campos declarados na classe TRecord existem na sua tabela? E se estão com o mesmo nome? Verificou o nome da sua tabela no banco de dados é igual a constante TABLENAME declarada na classe Filme?
Esse erro é gerado porque a classe TRecord tentou manipular um atributo e não encontrou equivalente no banco de dados.
A função é addATTribute, com 2 T
Você pode encontrar os bons filmes que deseja na lista de iptv
Você pode encontrar os bons filmes que deseja na lista de iptv no https://techgara.com/lista-iptv