problem pri kontrole formulare
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
Hoj mam tento presenter
function renderNew()
{
parent::renderDefault();
$this->template->nadpisSekce = 'Přidat stránku';
$this->typesOfPages = $this->PagesRepository->types()
->fetchPairs('id', 'nazev');
$this->parentsOfPage = $this->PagesService->parents();
echo 'D';
}
/* FACTORIES */
function createComponentNewPageForm()
{
print_r('S');
$fData = array('presenter'=>$this,
'defaultNameOfPage'=>$this->infoPage['nazev'],
'defaultTypeOfPage'=>$this->infoPage['typeOfPage'],
'typesOfPages'=>$this->typesOfPages,
'parentsOfPage'=>$this->parentsOfPage);
$form = $this->PagesFormFactory->newForm($fData);
return $form;
}
kdy vlezu na stranku s timto presenterem tak se mi nejdrive provede renderNew() a az pak createComponentNewPageForm() tazke ziskam promenne $this->typesOfPages a $this->parentsOfPage ale kdyz provedu submit formulare tak se provede nejdrive createComponentNewPageForm() a az pak renderNew() takze se mi do formulare nedostanou pole $this->typesOfPages a $this->parentsOfPage.
- enumag
- Člen | 2118
Signál (odeslání formuláře) se volá před metodou render*, ale po action*. Komponenta (formulář) se vytváří až když je třeba – před odesláním až během vykreslování, po odeslání při zpracování toho signálu. Nastuduj si životní cyklus presenteru, je to jedna z nejdůležitějších částí dokumentace. Řešení aktuálního problému uvádím níže.
function actionNew()
{
$this->typesOfPages = $this->PagesRepository->types()
->fetchPairs('id', 'nazev');
$this->parentsOfPage = $this->PagesService->parents();
}
function renderNew()
{
parent::renderDefault();
$this->template->nadpisSekce = 'Přidat stránku';
echo 'D';
}