Jak si předávat parametry ve formuláři
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- tttpapi
- Člen | 100
Ahoj,
mám formulář, generovanou továrničku a v presenteru si vytvářím klasicky createComponent.
Mám dotaz, jak si správně předávat parametry do toho formuláře.
Příklad:
Mám formulář na komentář
<?php
/** @persistent */
private $documentId;
public function __construct($documentId, ..) {
parent::__construct();
$this->documentsModel = $documentsModel;
$this->documentId = $documentId;
}
public function succeed($form) {
var_dump($this->documentId);
}
?>
Chci se zeptat, jak si správně předávat toto
$documentId?
Možnosti, které mi napadají:
- dávat to do hidden inputu formu a pak to načítat z values
- pomocí persistent parameteru
Ad 2) jsem narazil na problém
Presenter
<?php
public function createComponentDocumentCommentsForm() {
$id1 = $this->id;
$id2 = $this->getParameter('id');
$control = $this->documentCommentsFormFactory->create(...);
return $control;
}
?>
pokud použiju $id1, tak ho mám k dispozici pouze při vytvoření
formuláře, při odeslání už mám NULL
s $id2 to funguje.
Abych to shrnul:
- Jak správně předávat takovéto parametery. (nejlépe i proč) :)
- Je to schválně, že to funguje pouze s $this->getParameter(‚id‘) (a proč?)
Díky za odpovědi.
- ViPEr*CZ*
- Člen | 818
Persistentní parametr musí být public! Viz: https://doc.nette.org/…n/components#…
Možnost použít hidden value ve formuláři je asi také možnost, ale pokud
nemusím, tak naproti persistent parametru je s tím více práce.