preco sa v komponente nenacitam persistentni parameter?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute viete mi poradit? Mam komponentu a v nej persistentni parameter $data do ktoreho ukladam pole z formulara, ale ked chcem tento parameter nacitat vracia mi NULL. Do url mi ho prenesie ale uz ho nenacitam, co mozem mat zle?
class FilterFormControl extends UI\Control {
/** @persistent */
public $data;
public function getData() {
// vracia NULL pricom v url mam /?filter-data=priority.......
\Nette\Diagnostics\Debugger::barDump($this->data);
$data= array();
if ($this->data != NULL) {
parse_str($this->data, $data);
}
return $data;
}
public function setData($data) {
if (!empty($data)) {
$this->data = http_build_query($data, '', '&');
}
}
protected function createComponentForm() {
$form = new Form;
// array
$list = $this->log->getPriorityList();
$form->addSelect('priority', 'Priorita', $list)
->setPrompt('Všetky');
$form->setDefaults($this->getData());
$form->addSubmit('filter', 'Filter');
$form->onSuccess[] = callback($this, 'filterSubmitted');
return $form;
}
public function filterSubmitted(Form $form) {
$values = $form->getValues();
$this->setData($values);
$this->redirect('this');
}
}