ホームページ > PHPフレームワーク > Laravel > laravelエラージャンプ

laravelエラージャンプ

王林
リリース: 2023-05-26 15:33:09
オリジナル
790 人が閲覧しました

Laravel 開発者として、私たちはさまざまなエラーに遭遇することがよくあります。コーディングエラーが原因で発生する場合もあれば、誤ったユーザー入力や不適切な操作が原因で発生する場合もあります。このようなエラーが発生した場合、優れたエラー処理メカニズムとエラー ページが特に重要です。

この記事では、Laravel のエラー処理メカニズムと、エラーページとジャンプをカスタマイズする方法を紹介します。例としてLaravel 8を使用します。

エラー ハンドラーの構成

Laravel では、すべての例外は例外ハンドラーにスローされます。このハンドラーは、これらの例外に応答する方法を決定する責任があります。 Laravel は、すべての例外を処理するためにデフォルトで AppExceptionsHandler クラスを提供します。

例外応答をカスタマイズする場合は、Handler クラスで直接編集できます。たとえば、render メソッドを使用して例外応答をカスタマイズできます。

public function render($request, Throwable $exception)
    {
        if ($exception instanceof ModelNotFoundException) {
            return response()->json([
                'message' => 'Record not found'
            ], 404);
        }

        return parent::render($request, $exception);
    }
ログイン後にコピー

上記のコードは、モデルが見つからない場合に応答する方法を示しています。ここでは、response()->json を使用して、JSON 形式でエラー応答を返します。ビューを返したい場合は、view() ヘルパー関数を使用できます。

カスタム HTTP エラー ページ

例外ハンドラーに加えて、HTTP エラー ページもカスタマイズする必要があります。 Laravel ではこのプロセスが非常に簡単になります。必要なのは、対応するビューを resources/views/errors ディレクトリに作成することだけです。例:

  • resources/views/errors/404.blade.php は HTTP 404 エラー
  • resources/views/errors/500 を処理します。 .blade.php HTTP 500 エラーを処理します

これらのビューを美しくし、スタイルを設定する必要があることに注意してください。ここでは最も基本的な応答のみを提供します。

アプリケーションが運用モードで実行されており、サンプル データが設定されていない場合は、APP_DEBUG 環境変数を変更してデバッグ モードを無効にし、キャッシュを有効にします。

カスタム リダイレクト

カスタム エラー応答に加えて、アプリケーション内のリダイレクトもカスタマイズできます。最も一般的なリダイレクト状況は、ユーザーが認証されていないため、ログイン ページにリダイレクトする必要がある場合です。 Laravel では、ミドルウェアを使用してルート、コントローラー メソッドなどを保護します。

たとえば、auth ミドルウェアを使用して dashboard ルーティングを保護できます:

Route::get('/dashboard', function () {
    //
})->middleware(['auth']);
ログイン後にコピー

ユーザーが認証されていない場合、Laravel は自動的にユーザーをは、Laravel の組み込み承認ミドルウェアの機能である login ルートにリダイレクトされます。リダイレクトをカスタマイズする場合は、RedirectIfAuthenticated ミドルウェアを使用できます。これにより、ユーザーが既にログインしているときに特定のページにリダイレクトできます。

たとえば、ログインしているユーザーを /login ページから /dashboard にリダイレクトするには:

public function handle($request, Closure $next)
{
    if (Auth::check()) {
        return redirect('/dashboard');
    }

    return $next($request);
}
ログイン後にコピー

これは、次のエラーを処理する方法です。 Laravel とカスタムのリダイレクト方法。カスタム エラー ページとリダイレクトは、アプリケーションのユーザー エクスペリエンスを確実に向上させ、アプリケーションのアクセシビリティを向上させることができます。もちろん、先ほど述べたように、不明なエラーが発生した場合は、ユーザーが問題の解決方法を判断できるように、わかりやすいエラー プロンプトも提供する必要があります。

以上がlaravelエラージャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート