Problém při vyhledávání s proměnou v presenteru
- Koniklec
- Člen | 6
Zdravím jsem amatér a potřeboval bych radu:
mám udělané vyhledávání podle názvu:
<script>
class HomepagePresenter extends BasePresenter
{
public $data;
...
protected function createComponentVyhledaniDoplnkyForm()
{
$form = new Nette\Application\UI\Form;
$form->addText('nazev', 'Vyhledani podle názvu:')
->setRequired();
$form->addSubmit('send', 'Vyhledej');
$form->onSuccess[] = $this->VyhledaniDoplnkyFormSucceeded;
return $form;
}
public function VyhledaniDoplnkyFormSucceeded($form)
{
$values = $form->getValues();
$this->data = $values['nazev'];
$this->redirect('doplnkyVyhledej');
}
public function renderDoplnkyVyhledej()
{
$data= $this->data;
$this->template->posts = $this->database->table('pripravky')->where('nazev',$data);
}
...
}
</script>
ale nejede to, tracy my ukazuje ze v $data je NULL nevím čím to může
být.
Když sem si flash zprávou vypsal v VyhledaniDoplnkyFormSucceeded proměnnou
$data tak vtom bylo to co sem tam poslal z createComponentVyhledaniDoplnkyForm
$form-em akorát se to nedostane až do renderu, jakoby ta proměnná
$this->data nebyla společná pro všechny funkce v prezenteru.
Děkuji za odpovědi.
- David Matějka
- Moderator | 6445
Nenastavuj ve zpracovani $this->data
, ale presmeruj s timto
parametrem:
$this->redirect('doplnkyVyhledej', array('data' => $values['nazev']));
- looky
- Člen | 99
David Matějka napsal(a):
Nenastavuj ve zpracovani
$this->data
, ale presmeruj s timto parametrem:$this->redirect('doplnkyVyhledej', array('data' => $values['nazev']));
Doplnění, $this->data
sice je společná pro celý
presenter, ale když uděláš přesměrování, je to jako by jsi poslal nový
požadavek. Celý presenter se vytvoří a spustí znovu a tím pádem v té
proměnné samozřejmě nejsou žádná data..
Editoval looky (2. 3. 2015 22:28)