byforeRender vs. renderView
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Fidilip
- Člen | 2
Ahojte,
v příkladech z tutoriálů to funguje, dřív mi to také fungovalo, ale najednou už nefunguje =(.
class NejakyPresenter extends BasePresenter {
function byforeRender() {
$this->template->menuItems = array(
"Uvod:" => "Úvod",
"Uvod2:" => "Projekty Hi-Fi",
"Uvod3:" => "Projekty PA",
"Uvod4:" => "Teorie",
"Uvod5:" => "Tesla",
"Odkazy:" => "Odkazy",
"Uvod7:" => "Informace",
"Uvod8:" => "O nás"
);
}
function renderDefault() {
/*$this->template->menuItems = = array(
"Uvod:" => "Úvod",
"Uvod2:" => "Projekty Hi-Fi",
"Uvod3:" => "Projekty PA",
"Uvod4:" => "Teorie",
"Uvod5:" => "Tesla",
"Odkazy:" => "Odkazy",
"Uvod7:" => "Informace",
"Uvod8:" => "O nás"
);*/
}
}
když přesně toto dám do byforeRender, tak Nette při procházení za
pomocí foreach v @layout zahlásí:
Invalid argument passed to foreach resp. SmartCachingIterator; array or
Iterator expected, NULL given.
jenže jakmile to hodím do renderDefault tak to už funguje. Nechápu
to =(.
BasePresenter vypadá takto:
abstract class BasePresenter extends Presenter
{
public $oldLayoutMode = FALSE;
}
Prosím o radu =)