サーチ…
備考
config/mail.php
適切に設定されていることを確認して、メール送信用にアプリケーションを設定してください
また、ENV変数が正しく設定されていることを確認してください。
この例はガイドであり、最小限です。必要に応じて、ビューを探検、修正、スタイルを設定します。ニーズに合わせてコードを調整します。たとえば、受信者を.envファイルに設定します
エラーレポートメールを送信する
Laravelの例外はApp \ Exceptions \ Handler.phpによって処理されます
このファイルには、デフォルトで2つの機能が含まれています。レポート&レンダリング。私たちは最初の
public function report(Exception $e)
レポートメソッドは、例外を記録するか、BugSnagのような外部サービスに送信するために使用されます。デフォルトでは、レポートメソッドは、例外がログに記録される基本クラスに例外を渡します。ただし、必要に応じて例外を記録することは自由です。
本質的に、この関数は単にエラーを転送し、何もしません。したがって、エラーに基づいて操作を実行するビジネスロジックを挿入できます。この例では、エラー情報を含む電子メールを送信します。
public function report(Exception $e)
{
if ($e instanceof \Exception) {
// Fetch the error information we would like to
// send to the view for emailing
$error['file'] = $e->getFile();
$error['code'] = $e->getCode();
$error['line'] = $e->getLine();
$error['message'] = $e->getMessage();
$error['trace'] = $e->getTrace();
// Only send email reports on production server
if(ENV('APP_ENV') == "production"){
#1. Queue email for sending on "exceptions_emails" queue
#2. Use the emails.exception_notif view shown below
#3. Pass the error array to the view as variable $e
Mail::queueOn('exception_emails', 'emails.exception_notif', ["e" => $error], function ($m) {
$m->subject("Laravel Error");
$m->from(ENV("MAIL_FROM"), ENV("MAIL_NAME"));
$m->to("[email protected]", "Webmaster");
});
}
}
// Pass the error on to continue processing
return parent::report($e);
}
電子メールのビュー( "emails.exception_notif")は以下のとおりです
<?php
$action = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getActionName() : "n/a";
$path = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getPath() : "n/a";
$user = (\Auth::check()) ? \Auth::user()->name : 'no login';
?>
There was an error in your Laravel App<br />
<hr />
<table border="1" width="100%">
<tr><th >User:</th><td>{{ $user }}</td></tr>
<tr><th >Message:</th><td>{{ $e['message'] }}</td></tr>
<tr><th >Action:</th><td>{{ $action }}</td></tr>
<tr><th >URI:</th><td>{{ $path }}</td></tr>
<tr><th >Line:</th><td>{{ $e['line'] }}</td></tr>
<tr><th >Code:</th><td>{{ $e['code'] }}</td></tr>
</table>
アプリケーション全体を捕捉するModelNotFoundException
app \ Exceptions \ Handler.php
public function render($request, Exception $exception)
{
if ($exception instanceof ModelNotFoundException) {
abort(404);
}
return parent::render($request, $exception);
}
Laravelでスローされた例外を捕捉/処理できます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow