Mailer: Call to a member function send() on null

Michal Kumžák
Člen | 106
+
0
-

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
+
+2
-

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
+
0
-

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.