ciste reseni pro zabraneni zobrazeni renderu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ali
- Člen | 342
Zdravim,
chtel bych se zeptat, na ciste reseni meho problemu…
Mam komponentu s formularem. Tento formular mam zobrazen v renderu
scanSn, zde se naskenuje seriove cislo a v metode
scanFormValidate se zkontroluje jestli je vse v poradku
(delka, znaky, zaznam v db)
Po kontrole v metode scanFormSuccess nastavim view na
rework, ve ktere se mi nacte dalsi formular.
Abych zabranil zobrazeni renderu rework zadanim adresy do prohlizece (bez naskenovani seriove cisla), ve startup metode pres promennou snIsOk kontroluju jestli bylo seriove cislo naskenovano, pokud ne, presmeruji na render default
A otazka zni, je muj postup spravny?
<?php
private $snIsOk = false;
public function startup()
{
parent::startup();
if(!$this->snIsOk && $this->getName()=="Pega:Rework" && $this->getAction()=="rework")
$this->redirect("Rework:default");
}
protected function createComponentScanForm()
{
$form = new Form;
$form->addProtection();
.....
$form->onValidate[] = $this->scanFormValidate;
$form->onSuccess[] = $this->scanFormSuccess;
return $form;
}
public function scanFormValidate($form)
{
.....
}
public function scanFormSuccess($form)
{
$values = $form->getValues();
$this->template->sn = $values["sn"];
$this->snIsOk = true;
$this->setView("rework");
}
?>