Načítání dat z databáze, jejich úprava a odeslání do šablony – dělám to takto správně?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- radekBrno
- Člen | 61
Dobrý večer,
v presenteru načítám data z databáze, která před odesláním do šablony potřebuji upravit. tady je funkční řešení, ale moc se mi nelíbí. Jde to nějak zestručnit?
$article = $this->database
->table("article")
->select("id, title, link, annotation, content, photo, visible_in_section, timestamp")
->where("id = ?", $articleID)
->fetch();
$articleData["id"] = $article->id;
$articleData["title"] = $article->title;
$articleData["link"] = $article->link;
$articleData["annotation"] = $article->annotation;
$articleData["content"] = $article->content;
$articleData["photo"] = $article->photo;
$articleData["visible_in_section"] = $article->visible_in_section;
$articleData["timestamp"] = $article->timestamp;
...
úpravy dat a nebo odeslání názvu článku do titulku stránky
...
$this->template->article = (object) $articleData;
- David Kudera
- Člen | 455
Minimálně si můžeš usnadnit ten první krok převedením na pole:
$articleData = $article->toArray();
No a pak by to celý mělo být ideálně někde v nějaké metodě asi modelu, aby to nebylo v presenteru. Ta metoda by pěkně už vrátila ten stdClass (nebo klasický pole, to je jedno) a jen ten výsledek by se předal šabloně.