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
+
0
-

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
+
0
-

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ě.