Odeslání editačního formuláře – getvalues nevrací hodnotu
- Hubert
- Člen | 8
Zdravím,
mám dva problémy s odesláním editačního formuláře:
- getHttpData mi vrátí hodnotu category(select), ale v případě getValues je category = null.
- Když jsem uložil formulář, Nette mi hlásilo chybu s $this->getParameter(‚id‘) → bylo null. Tohle už je ošetřeno podmínkou, ale nechápu z jakého důvodu tomu tak je? Přece odesílám formulář → redirect, nevytvářím znovu formulář…?
Může mi prosím někdo objasnit toto chování, případně co mám špatně? Děkuji
<?php
public function createComponentEditPostForm(){
$form = $this->addPostFormFactory->create();
if(!is_null($this->getParameter('id'))){
$post = $this->postsMapper->get($this->getParameter('id'))->toRow();
$form['title']->setValue($post['title']);
$form['text']->setValue($post['text']);
$form['category']->setItems($this->categoryMapper->getAll())
->setDefaultValue($post['category_id']);
}
$form->onSuccess[] = function (\Nette\Application\UI\Form $form) {
\Tracy\Debugger::barDump($form->getHttpData(),'$form->getHttpData()');
\Tracy\Debugger::barDump($form->getValues(),'$form->getValues()');
$this->redirect('Posts:default');
};
return $form;
}
?>
- David Matějka
- Moderator | 6445
Přece odesílám formulář → redirect, nevytvářím znovu formulář…?
prave ze se vytvari, nette pri zpracovani musi znat jeho strukturu, validacni pravidla a navazane eventy, aby je mohlo zavolat
Nette mi hlásilo chybu s $this->getParameter(‚id‘) → bylo null.
tohle je pricina toho prvniho problemu, potrebujes zaridit, aby se
id
predalo pri odeslani formulare. udelas to tak, ze do prislusne
action metody (i tebe predpokladam neco jako actionEdit) pridas
parametr id
public function actionEdit($id)