Jak otestovat prázdný výsledek dotazu do db?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- charlie.v
- Člen | 20
Ahoj, mám v presenteru:
$this->template->mesto = $this->database->table(‚mesta‘);
a výsledek dotazu pak vypisuji v šabloně. Pokud je výsledkem dotazu 1 a
více řádků je to v pohodě. Ale pokud se vrátí prázdný výsledek,
napíše mi to chybu. Poradíte mi jak otestovat zda je výsledek prázdný?
Mělo by se to dělat ještě v presenteru nebo až v šabloně při
výpise?
Děkuji
- vymak
- Člen | 92
Ve svých projektech to řeším takhle
Presenter:
$this->template->mesto = $this->database->table('mesta')->fetchAll();
Šablona:
{if $mesto}
// nějaký výpis v případě že proměnná není prázdná
{else}
Nebyly nalezeny žádná města
{/if}
V případě že mám nějakou akci, která zobrazuje již konkrétní detail řeším to přímo v presenteru
Presenter:
private $model;
public function actionDetail($id) {
$model = $this->database->table('tabulka')->get($id);
if (!$model) {
throw new \Nette\Application\BadRequestException;
}
$this->model = $model;
}
public function renderDetail() {
$this->template->model = $this->model;
}
V šabloně už potom nemusíš testovat nic, protože víš že v modelu něco je. Nevím jestli je to best-practice ale já to tak používám :)
Editoval vymak (7. 9. 2014 21:21)