cakephp 3 - 电子邮件 - 在外部显示错误

时间:2017-01-24 11:30:20

标签: flash cakephp exception mailer

我正在使用Mailer类,以便在保存表记录后发送电子邮件。 这很好用。我想知道如果引发异常,我怎么能向最终用户显示错误。 我发现不能使用Flash组件(显然Emailer类不是来自控制器)。 我唯一能想到的是将错误存储在一个表上,然后尝试显示该记录。 有没有办法可以从外部捕获Emailer类引发的异常?

这就是我在表格模型中对电子邮件程序的描述:

$this->eventManager()->on( $this->getMailer( 'SlsOrders' ) );

使用Cakephp 3。

感谢。 问候。 法昆

1 个答案:

答案 0 :(得分:1)

首先,我建议您read the chapter in the php documentation了解异常情况,以便更深入地了解它们。简短的回答是他们会把你的整个电话堆放上去。

猜测,因为您根本没有粘贴任何代码,因此您的保存是从控制器触发的。但是必须首先访问某些控制器(如果环境是web,而不是控制台),然后调用某些模型层方法。因此,在try / catch块中包含任何代码。

异常将在控制器中捕获,然后将其设置为flash消息。

try {
    // Whatever might cause an exception goes here
} catch (Exception $e) {
    // Do whatever else you want in case of error
    $this->Flash->error($e->getMessage());
}