Odesílání emailu – chyba v latte, Trying to get property of non-object
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Desttro
- Člen | 126
Zdravím,
chtěl bych poprosit o radu. Když nemám žádný záznam v DB, a volám
actionCheck v CronPresenteru, tak vše funguje. Jakmile mám v DB záznam,
který splňuje podmínku, aby se odeslal email, tak mi laděnka hlásí chybu
v email.latte:
Notice
Trying to get property of non-object
$iterations = 0; foreach ($data as $dat) { ?>
<?php echo Latte\Runtime\Filters::escapeHtml($dat->orderp, ENT_NOQUOTES) ?>
<?php $iterations++; }
Nevíte, v čem je problém? Zde je můj presneter a latte. Děkuji za všechny rady.
CronPresenter.php:
namespace App\Presenters;
use Nette,
App\Model;
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
class CronPresenter extends BasePresenter
{
public function actionCheck()
{
$this->checkOneWeek();
}
public function checkOneWeek()
{
$date = new \Nette\DateTime();
$date->modify('+1 week');
$data = $this->database->table('manufacturing')
->where('delivery_date < ?', $date)
->where('notify = 0')->fetch();
if ($data != null) {
// Mail send
$template = $this->createTemplate();
$template->setFile(__DIR__ . '/../templates/Cron/email.latte');
$template->data = $data;
$mail = new Message;
$mail->setFrom('TEST <test@test.cz>')
->addTo('testmail@domena.cz')
->setHtmlBody($template);
}
}
}
email.latte:
{foreach $data as $dat}
{$dat->orderp}
{/foreach}