Fórum Uncaught Error: Call to a member function findOne() on null #600480
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 :)