Uncaught Error: Call to a member function findOne() on null
12/02/2019
0
Oi, eu tenho uma index.html que envia vários arquivos de texto pre definidos para uma send.php. Esta separa cada arquivo, divide em parágrafos e envia para uma, fiz uma classe chamada db, que usa a framework RedBeanPHP (ORM) que divide o parágrafo em linhas e persiste cada uma no banco de dados. MySQL ou Postgres.
Um exemplo de tal arquivo:
A classe db com o método que faz a persistência:
Mas acontece um fatal error quado tento executar acontece o erro:
Fatal error: Uncaught Error: Call to a member function findOne() on null in C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\rb.php:12774
Stack trace:
#0 C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\db.php(27): RedBeanPHP\\\\Facade::findOne(''dept'', ''nome like ?'', Array)
#1 C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\db.php(11): db::getInfo(''GEOGRAFIA'', 1)
#2 C:\\\\xampp\\\\htdocs\\\\ORM\\\\controler\\\\send.php(18): db::saveOcorr(''\\\\xEF\\\\xBB\\\\xBFDEPARTAMENTO...'', ''2019-02-01'')
#3
thrown in C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\rb.php on line 12774
O método getInfo:
Alguém pode me ajudar? Não consigo nem entender o que causa o erro, acho que é no getInfo...
Grato.
Um exemplo de tal arquivo:
DEPARTAMENTO DE GEOGRAFIA LOCAL HORÁRIO DISCIPLINA TURMA PROF(A) OCORRÊNCIA D-201 17:00-18:40 GEOGRAFIA 2842 S/ INFORMAÇÃO FTP DEPARTAMENTO DE MATEMÁTICA LOCAL HORÁRIO DISCIPLINA TURMA PROF(A) OCORRÊNCIA D-202 17:00-18:40 MATEMATICA 2831 S/ INFORMAÇÃO FTP DEPARTAMENTO DE ELETROTÉCNICA LOCAL HORÁRIO DISCIPLINA TURMA PROF(A) OCORRÊNCIA D-111 13:20-15:00 SIST.ESTRUT. 1832 S/ INFORMAÇÃO AD D-112 15:20-17:00 ELETR. POT 9831 S/ INFORMAÇÃO AD
A classe db com o método que faz a persistência:
<?php require_once ''rb.php''; class db { function __construct() { R::setup(''mysql:host=localhost;dbname=SEO'', ''root'', ''ads''); R::exec("SET lc_time_names = ''pt_BR'';"); } static function saveOcorr($paragraph, $data) { $lines = explode("\\\\n", $paragraph); $b = preg_split("/\\\\s+/", $lines[0]); $codigo = self::getInfo($b[2], 1); for($i = 2; $i < sizeof($lines); $i++) { $cell = explode ("\\\\t", $lines[$i]); $ocorr = R::dispense(''ocorr''); $ocorr[''data''] = $data; $ocorr[''local''] = $cell[0]; $ocorr[''horario''] = $cell[1]; $ocorr[''disciplina''] = $cell[2]; $ocorr[''turma''] = $cell[3]; $ocorr[''prof''] = $cell[4]; $ocorr[''ocorr''] = $cell[5]; $ocorr[''codiogo''] = $codigo; $id = R::store($ocorr); return; } } /* outros métodos todos estáticos */ } ?>
Mas acontece um fatal error quado tento executar acontece o erro:
Fatal error: Uncaught Error: Call to a member function findOne() on null in C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\rb.php:12774
Stack trace:
#0 C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\db.php(27): RedBeanPHP\\\\Facade::findOne(''dept'', ''nome like ?'', Array)
#1 C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\db.php(11): db::getInfo(''GEOGRAFIA'', 1)
#2 C:\\\\xampp\\\\htdocs\\\\ORM\\\\controler\\\\send.php(18): db::saveOcorr(''\\\\xEF\\\\xBB\\\\xBFDEPARTAMENTO...'', ''2019-02-01'')
#3
thrown in C:\\\\xampp\\\\htdocs\\\\ORM\\\\db\\\\rb.php on line 12774
O método getInfo:
static function getInfo($string, $type) { $dept = R::findOne(''dept'', ''nome like ?'', array(''%DE ''.$string.''%'')); switch($type) { case 0: return $dept[''nome'']; break; case 1: return $dept[''codigo'']; break; case 2: return ($dept[''address1''] != '''') ? '','' . $dept[''address1''] : $dept[''address'']; break; } }
Alguém pode me ajudar? Não consigo nem entender o que causa o erro, acho que é no getInfo...
Grato.
João Vitor
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)