Vypsani konkretniho prvku pole do sablony
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- saimons
- Člen | 293
Chtel bych se zeptat jak bych mohl v sablone vypsat konkretni prvek pole.
<?php
//model
public function generateUrls() {
return $this->connection->query('SELECT name AS url FROM typearticle ORDER BY typeArticleID ASC');
}
//presenter
protected function beforeRender() {
$linksSEO = new Front_ArticleModels();
$this->template->urls = $linksSEO->generateUrls();
}
//template (toto uy neni spravne)
<div class="top_menu_x top_menu_1">
<a href="{link :Front:Articles:, $ur->url[1]}">naše firma</a>
</div>
?>
Do presentru vstupuje jednorozmerne pole. Kdyz udelam {foreach $urls as $ur}{$ur->url}{/foreach}, tak to bude fungovat, ale jsem nak schopnej vypsat na urcitych mistech konkretni pravky pole?.
Editoval saimons (19. 4. 2010 9:00)
- Šaman
- Člen | 2666
DibiResult by mel byt objekt schopny vystupovat i jako pole. Takze normalne
pres $result['xxx']
. Kdyby ti neco vyhazovalo warningy, tak to
predavej pretypovane na
pole: $this->template->results = (array)$results;
//Edit: do sablony posilas promennou $urls
, ale v sablone volas
$ur->url[1]
, podle me by ti melo
fungovat $urls[1]
Editoval Šaman (19. 4. 2010 13:58)
- saimons
- Člen | 293
Tak uz jsem to pochopil a funguje to, kdyby nekdo potreboval:
<?php
//model
public function generateUrls() {
return $this->connection->query('SELECT name AS url, typeArticleID AS id, nameView AS popis FROM typearticle ORDER BY typeArticleID ASC');
}
//presenter
protected function beforeRender() {
$linksSEO = new Front_ArticleModels();
$this->template->links = $linksSEO->generateUrls()->fetchAssoc('id');
}
//template
<a href="{link :Front:Articles:, $links[2]->url}">{$links[2]->popis}</a>
?>