目次
API インターフェースの説明
ホームページ PHPフレームワーク Laravel Laravel 5.5+ フレームワークで 404 レスポンスをより適切に実装する方法

Laravel 5.5+ フレームワークで 404 レスポンスをより適切に実装する方法

Sep 10, 2018 pm 02:48 PM

404ページを実装するにはどうすればよいですか?実際には多くの方法があります。次に、この記事では、Laravel 5.5 以降のフレームワークを使用して 404 応答をより適切に実装する方法を紹介します。早速、具体的な内容を見てみましょう。

Laravel 5.5.10 には、ユーザーにより良い 404 ページを提供するのに役立つ 2 つの便利なルーター メソッドがカプセル化されています。 404 例外がスローされると、Laravel は美しい 404.blade.php ビュー ファイルを表示します。このビュー ファイルはユーザー UI に表示するようにカスタマイズできますが、このビューでは session にアクセスできません。 Cookie 、認証 (auth) など...

laravel 5.5.10 では、リクエストルーティングに一致するルートが他にない場合の Laravel のフォールバックを定義する新しい Route::fallback() メソッドがあります。

Route::fallback(function () {
    return 'Sorry' . auth()->user()->name . '! This page does not exist.';
});
ログイン後にコピー

これで、シンプルな 404 ビューを、通常のページとフッターを備えたアプリ レイアウトに置き換えることができると同時に、ユーザーにフレンドリーなメッセージも表示できるようになりました。

Route::fallback(function() {
    return response()->view('notFound', [], 404);
});
ログイン後にコピー
@extends('layout.app')

@section('content')
    <h3>Sorry! this page doesn't exist.</h3>
@stop
ログイン後にコピー

Laravel がこのフォールバック ルートをレンダリングするとき、すべてのミドルウェアが実行されるため、web.php ルート ファイルでフォールバック ルートを定義すると、web ミドルウェア グループ内のすべてのミドルウェアが実行されます。 セッションデータを取得できます。

API インターフェースの説明

これで、/non-existing-page をクリックすると、/api/non-existing-endpoint をクリックした場合でも、フォールバック ルートで定義されたビューが表示されます。このインターフェースを提供したくない場合は、api フォールバック ルートで JSON 応答を定義できます。api.php ルーティング ファイルで別のフォールバック ルートを定義しましょう。API ミドルウェア グループには

/ が付属しているため、 api

プレフィックスを使用すると、/api プレフィックスを持つすべての未定義ルートは、 web.php ルーティング ファイルで定義されたルートではなく、api.php ルーティング ファイル内のフォールバック ルートに移動します。 abort(404) と ModelNotFound 例外を使用する

abort(404)

を使用すると、NotFoundHttpException がスローされます。この時点で、プロセッサは 404.blade.php ビュー ファイルをレンダリングします。同じ ModelNotFoundException 例外は同じ方法で処理されます。通常のビューではなくフォールバック ルートのビューをより適切にレンダリングできるようにするには、どのように処理すればよいでしょうか?

Route::fallback(function() {
    return response()->json(['message' => 'Not Found!]);
});
ログイン後にコピー

Route::respondWithRoute('fallback')

戻って、fallbackという名前のルートを実行します。

class Handler extends ExceptionHandler
{
    public function render($request, Exception $exception)
    {
        if ($exception instanceof NotFoundHttpException) {
            return Route::responseWithRoute('fallback');
        }

        if ($exception instanceof ModelNotFoundException) {
            return Route::responseWithRoute('fallback');
        }

        return parent::render($request, $exception);
    }
}
ログイン後にコピー
さらに、特定のリソースのルーティングにフォールバックを指定することもできます。

Route::fallback(function() {
    return response()->view('notFound', [], 404);
})->name('fallback');
ログイン後にコピー
次に、ルーティング ファイルでこのフォールバック ルートを定義する必要があります:

if ($exception instanceof ModelNotFoundException) {
    return $exception->getModel() == Server::class
                ? Route::respondWithRoute('serverFallback') 
                : Route::respondWithRoute('fallback');
}
ログイン後にコピー
関連する推奨事項:


mac mamp ngiux laravel フレームワークが 404 エラーを報告する


Laravel 5.5 応答性インターフェイスを実装する方法

以上がLaravel 5.5+ フレームワークで 404 レスポンスをより適切に実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Mar 11, 2025 pm 04:13 PM

この記事では、堅牢なLaravel Restful APIの構築をガイドします。 プロジェクトのセットアップ、リソース管理、データベースインタラクション、シリアル化、認証、承認、テスト、および重要なセキュリティベストプラクティスをカバーしています。 スケーラビリティチャレに対処します

Laravel Frameworkのインストール最新方法 Laravel Frameworkのインストール最新方法 Mar 06, 2025 pm 01:59 PM

この記事では、Composerを使用して最新のLaravelフレームワークをインストールするための包括的なガイドを提供します。 前提条件、ステップバイステップの手順、一般的なインストールの問題(PHPバージョン、拡張機能、許可)のトラブルシューティング、および最小限の詳細

Laravel-Adminメニュー管理 Laravel-Adminメニュー管理 Mar 06, 2025 pm 02:02 PM

この記事では、メニュー管理に関するLaravel-Adminユーザーをガイドします。 メニューのカスタマイズ、大規模なメニューのベストプラクティス(分類、モジュール化、検索)、およびLaravelの著者を使用したユーザーの役割と許可に基づく動的メニュー生成をカバーします

LaravelでOAUTH2認証と承認を実装する方法は? LaravelでOAUTH2認証と承認を実装する方法は? Mar 12, 2025 pm 05:56 PM

この記事では、LaravelでOAUTH 2.0認証と承認を実装しています。 League/OAuth2-Serverやプロバイダー固有のソリューションなどのパッケージを使用して、データベースのセットアップ、クライアント登録、承認サーバー構成を強調しています

Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか? Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか? Mar 17, 2025 pm 02:47 PM

この記事では、コンポーネントを使用してLaravelで再利用可能なUI要素の作成とカスタマイズについて説明し、組織のベストプラクティスを提供し、パッケージを強化することを提案します。

Laravelのバージョンは最高です Laravelのバージョンは最高です Mar 06, 2025 pm 01:58 PM

この記事は、Laravel開発者が適切なバージョンを選択する際にガイドします。 新しいバージョンが高度な機能を提供することを認めながら、安定性とセキュリティのために最新の長期サポート(LTS)リリースを選択することの重要性を強調しています。

Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Mar 17, 2025 pm 02:38 PM

この記事では、Laravelでカスタム検証ルールの作成と使用について説明し、それらを定義および実装する手順を提供します。再利用性や特異性などの利点を強調し、Laravelの検証システムを拡張する方法を提供します。

クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? Mar 14, 2025 pm 01:44 PM

この記事では、スケーラビリティ、信頼性、セキュリティに焦点を当てたクラウドネイティブ環境でLaravelを展開するためのベストプラクティスについて説明します。重要な問題には、コンテナ化、マイクロサービス、ステートレス設計、最適化戦略が含まれます。

See all articles