Uncaught Error: Call to a member function findOne() on null

12/02/2019

0

PHP

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:
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

João Vitor

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar