Získání proměnné z dotazu v presenteru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ravenss
- Člen | 12
Dobrý den,
mám problém se získáním jedné proměnné z dotazu v databázi.
Debugger vyhazuje chybu:
Cannot read an undeclared property Nette\Database\Table\Selection::$layout
V presenteru se tu proměnnou snažím získat takto:
<?php
$view = $this->context->pages->findPageLayout($id)->layout;
?>
V modelu (pages.php) mám…
<?php
public function findPageLayout($page_id) {
$row = $this->getTable()->select('layout')->where(array('url' => $page_id));
$row->fetch();
return $row;
}
?>
Jediné funkční řešení je
$this->context->pages->findPageLayout($id)[0][‚layout‘];
to mi ale příjde jako naprostá prasárna.
- Pavel Macháň
- Člen | 282
Ravenss napsal(a):
Paráda, funguje, moc děkuji.
Byl by mě ještě někdo schopný v krátkosti vysvětlit důvod proč to tak je? :)
public function findPageLayout($page_id) {
$row = $this->getTable()->select('layout')->where(array('url' => $page_id));
$row->fetch();
return $row;
}
protože todle nevrátíš ani neuložíš do jiné proměnné.
[$row->fetch()] != [$row = $row->fetch()];
pomocí return vrátíš původní $row a ne fetch
Editoval EIFEL (6. 6. 2014 14:57)