PHP - Object of class Nette\Database\Row could not be converted

21.01.2018 napsal Samsara

Vyřešeno
Dobrý den, začínám s php nette a udělal jsem si model, který kontroluje duplicity pro řetězec ve více tabulkách, dostávám však chybu "Recoverable Error Object of class Nette\Database\Row could not be converted to string search". Poradíte kde by mohl být problém? Díky CHYBA
Recoverable Error Object of class Nette\Database\Row could not be converted to string search> Source file File: .../vendor/latte/latte/src/Latte/Runtime/Filters.php:47 37: 38: /** 39: * Escapes string for use inside HTML. 40: * @param mixed plain text or IHtmlString 41: * @return string HTML 42: */ 43: public static function escapeHtmlText($s) 44: { 45: return $s instanceof IHtmlString || $s instanceof \Nette\Utils\IHtmlString 46: ? $s->__toString(true) 47: : htmlspecialchars((string) $s, ENT_NOQUOTES, 'UTF-8'); 48: } 49: 50: 51: /**
LATTE
<div n:foreach="$checkDuplicity as $checkDuplicita" class="flash">{$checkDuplicita[0]}</div>
MODEL

public function checkDuplicity($search) //vyhledani ve vsech tabulkach
{
	$result = array();

	//rozsekani na slova
	$sArr 	= explode(" ", $search);

	foreach ($sArr as &$q) {

		if (strlen($q) > 2) { //pokud je retezec delsi nez 2 znaky

			$result[] = $this->database->fetchAll('SELECT nazev FROM tab1 WHERE nazev LIKE ?', "%$q%");
			$result[] = $this->database->fetchAll('SELECT original FROM tab2 WHERE original LIKE ?', "%$q%");
                        $result[] = $this->database->fetchAll('SELECT priloha FROM tab3 WHERE priloha LIKE ?', "%$q%");
		}

	}

	return $result;

}
HOMEPAGE

$r = $this->modelPomocneFunkce->checkDuplicity($q);
print_r($r);
$this->template->checkDuplicity = $this->modelPomocneFunkce->checkDuplicity($q);

RE: PHP - Object of class Nette…

04.12.2018 odpověděl Rusty

Zkontrolováno

Ahoj,

pokud tomu správně rozumím a chceš výsledky posílat jako flash message, tak to latte uprav pro standardní flash messages:

< div n:foreach="$flashes as $flash" n:class="alert, $flash->type">{$flash->message}< /div>

A v presenteru dej return z checkDuplicity jako $results iterovat:

foreach ($results as $result) {
$this->flashMessage($result[0], 'success');
}
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace