Zkrácení zápisu Form onSuccess → Kdyby/Events

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

Zdravím,

chci se zeptat, jestli se dá nějak zkrátit tento zápis, kdy nedělám v komponentě formuláře při úspěchu nic jiného než „volání“ eventu v Kdyby/Events

Prosím omluvte jestli se vyjadřuji nesprávně

protected function createComponentShowLaterFilterForm()
    {
        $form = new Form;

        $form->setTranslator($this->translator->domain('forms.'));

        $form->addCheckboxList('show_laters', '', $this->show_later_filter->prepareShowLaters())
            ->setTranslator(null);

        $form->addSubmit('send');
        $form->onSuccess[] = $this->processShowLaterFilterForm;

        return $form;
    }

    public function processShowLaterFilterForm(Form $form, $values)
    {
        $this->onSuccess($form, $values);
    }
Martk
Člen | 661
+
0
-

To co je v kódu jsou Nette events.

	array_merge($form->onSuccess, $this->onSuccess);
	// nebo
	$form->onSuccess = $this->onSuccess;
CZechBoY
Člen | 3608
+
0
-

Bud lambda funkci nebo mozna muzes zkusit nacpat to pole callbacku, ale to teda nevim co udela…

$form->onSuccess[] = function ($form, $values) {
    $this->onSuccess($form, $values);
};

Nebo mozna pude

$form->onSuccess = array_merge($form->onSuccess, $this->onSuccess);

Editoval CZechBoY (29. 1. 2016 9:55)