Mailer: Call to a member function send() on null
- Michal Kumžák
- Člen | 106
Zdravím
Mám následují kód a nefunguje mi odesílání emailu. Hlásí mi to chybu
„Call to a member function send() on null“. Zkusil sem všechno možné,
zkoušel sem hledat a nenašel sem nic. Poradí mi někdo?
<?php
declare(strict_types=1);
namespace App\Model;
use Nette\Mail\Message,
Latte\Engine;
class MailModel
{
/** @var \Nette\Mail\IMailer @inject */
public $mailer;
/** @var \Nette\Database\Connection */
private $database;
/** @var VyzvyModel */
private $vyzvyModel;
public function __construct(\Nette\Database\Connection $database, VyzvyModel $vyzvyModel)
{
$this->database = $database;
$this->vyzvyModel = $vyzvyModel;
}
public function mailVyzva($id) {
if (!$id) return false;
$vyzva = $this->vyzvyModel->getVyzvaById($id);
$mail = new Message;
$mail->setFrom($vyzva['odesilatel']);
$mail->addTo($vyzva['prijemce']);
$mail->setSubject($vyzva['predmet']);
$latte = new Engine;
$params = [
'title'=>$vyzva['predmet'],
'zprava'=>$vyzva['zprava']
];
$mail->setHtmlBody($latte->renderToString(__DIR__ . '/mail.latte', $params));
$this->mailer->send($mail);
return true;
}
}
- David Matějka
- Moderator | 6445
ahoj, inject
anotace jsou implicitne dostupne jen
v presenterech, viz https://doc.nette.org/…dependencies#…
takze si to predej pres konstruktor, jako zbyle dve zavislosti
- Michal Kumžák
- Člen | 106
David Matějka napsal(a):
ahoj,
inject
anotace jsou implicitne dostupne jen v presenterech, viz https://doc.nette.org/…dependencies#…takze si to predej pres konstruktor, jako zbyle dve zavislosti
Já věděl, že to bude nějaká blbina. Dík.