Undefined variable – sablona nedostava promennou z presenteru
- err
- Člen | 77
Ahoj,
snazim se vypsat select z tabulky cyklem foreach v late, ale ladenka mi hlasi
nedefinovanou promennou.
Tu pritom do sablony posilam z presenteru. Nevidite nekde chybu?
Diky.
model (cast s funkci):
public function findAll()
{
return $this->database->table('users');
}
Presenter:
class UsersPresenter extends SecuredPresenter
{
public $users;
public function renderDefault()
{
$this->template->users = $this->users->findAll()->order('id');
}
}
sablona:
{foreach $users as $user}
<tr>
<td class="strong">{$user->id}</td>
<td class="small">{$user->login}</td>
</tr>
{/foreach}
- japlavaren
- Člen | 404
podla toho co pises by to malo byt ok. posli presnu hlasku co ti robi – premenna $user uz standartne v sablone(nette ju ta dava) cisto teoreticky to moze robit to
- David Matějka
- Moderator | 6445
jsi v akci „default“? nebo nemenis view (pres $this->setView()) nekde?
- err
- Člen | 77
sleduju, ze i kdyz v presenteru nadefinuji promennou staticky:
...
$this->template->users = 'xxx';
...
Tak ji to v sabolen pres {$users} nezna a nevypise. Pokud zmenim $users na $test je to stejne, takze chybu vyvolanou shodou jmen promennych bych vyloucil.
Editoval err (28. 9. 2013 19:04)
- err
- Člen | 77
Zkusil jsem tedy presunout do BasePresenteru, ktery se vola vzdy.
Ale vysledek je stale stejny.
public $users;
public function renderDefault()
{
$this->template->users = 'xxx';
}
Takovouto promennou samozrejme pak vypisuji {$users} , nikoli pres cyklus.
Editoval err (28. 9. 2013 19:15)
- err
- Člen | 77
Moc dekuji za rychle reakce.
Ano, to je funkcni. Tedy pouze staticke prirazeni. funkci z modelu findAll()
uz to nechce.
V zasade jsem vychazel z example prikladu, konkretne z CD-collection
(Akrabat). Ucim se to, tak jsem chtel pro zacatek jednoduse vypsat tabulku.
A tohle je vysledek za pul dne. :-) Asi rychle skocim zpet k smarty …
Myslim, ze v demu chybi zakladni jednoducha aplikace o trech souborech na vypis dat z DB. Nevim, proc ma zacatecnik resit jmenne prostory, injektaz a pod.
Napr. jQuery jsem bez cehokoli pochopil a pouzival behem tydne. A to jsem nemusel studovat vsechny jeho zdrojaky. Nette zkousim podruhe a nejak se mi nedari se do nej stale dostat.
Editoval err (28. 9. 2013 20:03)