Odeslání editačního formuláře – getvalues nevrací hodnotu

Hubert
Člen | 8
+
0
-

Zdravím,

mám dva problémy s odesláním editačního formuláře:

  1. getHttpData mi vrátí hodnotu category(select), ale v případě getValues je category = null.
  2. 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
+
+1
-

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)
Hubert
Člen | 8
+
0
-

@DavidMatějka Moc Vám děkuji za objasnění, nyní vše funguje jak má.