Laravel 5.5+ フレームワークで 404 レスポンスをより適切に実装する方法
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!]);
});
戻って、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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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