Nefunkční metoda ve vlastní třídě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ForestCZE
- Člen | 209
Ahoj, snažím se vytvořit si vlastní třídu pro odesílání mailů.
app/Emailing/Amail.php
namespace App\Emailing;
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
class Amail
{
public function getMail($from, $to, $subject, $html){
$mail = new Message;
$mail->setFrom($from)
->addTo($to)
->setSubject($subject)
->setHtmlBody($html);
return $mail;
}
public function sendMail($from, $to, $subject, $html){
$mailer = new SendmailMailer;
$mail = getMail($from, $to, $subject, $html);
$mailer->send($mail);
}
}
app/config/config.neon
- App\Emailing\Amail
BasePresenter.php
/** @var \App\Emailing\Amail @inject*/
public $amail;
V jiném presenteru, kde chci pak volat funkci, mám:
$this->amail->sendMail('od@email.cz', 'komu@email.cz', 'Test', 'Ahoj');
A vyhodí mi to hlášku:
Call to undefined function App\Emailing\getMail()
Ta cesta k funkci je divná, jako by tam chyběla celá třída. Neví prosím někdo, čím by to mohlo být? Děkuji.
- ForestCZE
- Člen | 209
Jako vážně? xD Tak to byla ta nejtrapnější chyba, co mě kdy potkala. Dokonce jsem měnil tu funkci getMail z public na private, jelikož by to tak mělo být, když je volána pouze ve třídě a ono mi ji to pak psalo jako nepoužitou. To mě mohlo trknout. Každopádně oběma moc děkuji :))
Editoval ForestCZE (6. 4. 2017 13:50)