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
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);
}