laravel5.5でアプリ上のエラー(Basic認証失敗時とか期限とか権限とか)を表示する画面は、die(view(‘errors.index’))みたいにすれば大丈夫!
resource/views/errors/404.blade.php とかエラーコードのbladeファイルを配置しておけば、自動的に独自404エラー画面を表示してくれる賢いlaravelさん!
でも、アプリケーション上のエラー画面(日付とか権限的なエラー)はどうするんだろ?と色々と試してみた。
1, abort(404); みたいにHTTPエラーを出す。
→→→でも、独自HTTPコードってのもな~。
2, 例外クラスを作って、throwする。
→→→なんか、コードが複雑そう
3, die()は、ブラウザに文字列を出力して終了するんだから、単純にbladeビューを渡せばいいじゃね?
→→→これだ!
1 2 3 4 5 6 7 8 |
header('WWW-Authenticate: Basic realm="Enter username and password."'); header('Content-Type: text/html; charset=utf-8'); // text/plainだと、htmlがそのまま表示される // die('このページを見るにはBasic認証が必要です'); $error_header = 'Basic認証エラー'; $error_message = 'このページを見るにはログインが必要です'; $error_detail = "IDとパスワードを確認して、担当者までご連絡下さい"; die( view('errors.index', compact('error_header', 'error_message', 'error_detail'))); |
resource/views/errors/index.blade.php に共通エラー画面を作っておいて、引数で詳細エラーを渡せば、どこでも使えるのが良いね!(主にmiddlewareでしか使わないけど)