Call to undefined function App\Presenters\callback()

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

Dobrý deň kontaktný formulár som vytvoril len pri akcii mi vypisuje chybu Call to undefined function App\Presenters\callback() Vypisuje mi to pri novej verzii nette. Viete mi poradiť. Ďakujem

$form->onSuccess[] = callback($this, 'contactFormSubmitted');
protected function createComponentContactForms() {
$form = new UI\Form();
$form->addText('meno', 'Meno:', '15', '15')
->addRule(UI\Form::FILLED, 'Vyplnte Vase meno');
$form->addText('email', 'E-mail:')
->setEmptyValue('@')
->addRule(UI\Form::FILLED, 'Vyplnte email!')
->addRule($form::EMAIL, 'Nespravny format emailu!');

$form->addTextArea('sprava', 'Sprava:', 55, 10)
->addRule(UI\Form::FILLED, 'Vyplnte spravu');

$form->addSubmit('create', 'Odoslat');

$form->onSuccess[] = callback($this, 'contactFormSubmitted');
return $form;
}

public function contactFormSubmitted(Form $form) {
try {
$this->sendMail($form->getValues());
$this->flashMessage('Kontaktny formular uspesne odoslany!');
$this->redirect('this');
} catch (\Nette\InvalidStateException $e) {
$form->addError('Chyba pri odosielani prosim vyskusajte neskor.');
}
}

/** @var \Nette\Mail\IMailer @inject */
  public $mailer;
private function sendMail($values) {
$mail = new Message;
$mail->setSubject('Nova sprava');
$mail->setFrom($values['email'], $values['meno']);
$mail->addTo('urobweb@gmail.com');
$this->mailer->send($mail);
}
premek_k
Člen | 172
+
+4
-
<?php
$form->onSuccess[] = [$this, 'contactFormSubmitted'];
?>
enumag
Člen | 2118
+
0
-

Použij místo funkce callback metodu \Nette\Utils\Callback::closure().

kasiopia
Člen | 69
+
0
-

Ďakujem veľmi pekne