PHP - Object of class Nette\Database\Row could not be converted
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
LATTE
MODEL
HOMEPAGE
Ahoj,
pokud tomu správně rozumím a chceš výsledky posílat jako flash message, tak to latte uprav pro standardní flash messages:
A v presenteru dej return z checkDuplicity jako $results iterovat:
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);
ODPOVĚĎ
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');
}