PHP promenna v Latte Sablone – FileTemplate
- acx2072
- Člen | 5
Ahoj, jsem zacatecnik v Nette a zkousim sablony. Dorazil jsem k makrum a
chci odzkouset cyklus while.
Tak ho vyzkousim na prikladu se ziskavanim dat z DB a tak si udelam DB a dotaz.
Kdyz prijde na sablonu (pouzivam FileTemplate) vlozim kod, upravim nazvy
promennych podle svych potreb a spustim. A co vidim?
Undefined variable: table
Nevite proc se to deje? Konkretni kod :
{while $row = $table->fetch()}
<span>{$row->name}</span>
{/while}
Dekuji za kazdou radu.
- tomas.lang
- Člen | 53
Ahoj, a máš do šablony předanou proměnnou $table
?
Případně jak ji do šablony předáváš?
- jiri.pudil
- Nette Blogger | 1032
A předal sis $table
do šablony?
EDIT: Pozdě :)
Editoval jiri.pudil (3. 7. 2013 11:09)
- jiri.pudil
- Nette Blogger | 1032
A tu notice ti to vyhodí až v šabloně, nebo tam, kde předáváš $table do šablony?
- jiri.pudil
- Nette Blogger | 1032
V tom případě ukaž víc kódu (ideálně od vytvoření šablony po render).
- acx2072
- Člen | 5
Staci toto?
function renderList($name)
{
$table = $this->database->table("numbers")->where("name",$name);
$template = $this->createTemplate();
$template->setFile(dump($this->context->parameters['appDir'])."\\templates\Manual\list.latte");
$template->table = $table;
$template->render();
}
- Jan Mikeš
- Člen | 771
Presne jak pise enumag.
Template nemusis znova vytvaret pomoci $this->createTemplate(), sablona je jiz vytvorena a dostupna
$this->template; // shortcut pro $this->getTemplate()
Edit: $template->render(); taky vyhod. Sablony presenteru se vykresluji automaticky, toto by jsi potreboval v komponente.
Editoval Lexi (3. 7. 2013 13:28)