Problém při vyhledávání s proměnou v presenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Koniklec
Člen | 6
+
0
-

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
+
+3
-

Nenastavuj ve zpracovani $this->data, ale presmeruj s timto parametrem:

$this->redirect('doplnkyVyhledej', array('data' => $values['nazev']));
Koniklec
Člen | 6
+
0
-

Děkuji pomohlo to.

looky
Člen | 99
+
+2
-

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)

Koniklec
Člen | 6
+
0
-

aha, díky za objasnění.