2017-01-24 7 views
0

テーブルレコードを保存した後にメールを送信するためにMailerクラスを使用しています。 これは正常に動作します。例外が発生した場合、どのようにして最終ユーザにエラーを表示することができますか? Flashコンポーネントを使用できないことがわかりました(明らかに、Emailerクラスはコントローラから継承していません)。 私が考えることができるのは、テーブルにエラーを格納し、このレコードを表示しようとすることです。 Emailerクラスで発生した例外を外部から捕捉できる方法はありますか?cakephp 3 - emailer - 外部でエラーを表示

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

をCakePHPの3

感謝の使用:私はテーブルモデル内のEmailerにsusbscribe方法

はこれがあります。よろしくです。 よろしくお願いします。 ファンクド。

答えて

1

まず、例外について深く理解するために、例外についてはread the chapter in the php documentationをお勧めします。簡単な答えは、あなたのコールスタック全体を上げることです。

あなたの保存がコントローラからトリガされたことを、全くに任意のコードを貼り付けていなかったので、私は、を推測。しかし、最初にいくつかのコントローラにアクセスする必要があります(の場合、環境はWebでコンソールではなく、です)、次にいくつかのモデルレイヤーメソッドを呼び出す必要があります。したがって、try/catchブロック内にあるコードはすべてラップしてください。

例外はコントローラで検出され、フラッシュメッセージに設定されます。

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()); 
} 
+0

ありがとうございました。やってみます。よろしく、 – user1077915

関連する問題