404 페이지를 어떻게 구현하나요? 실제로 많은 방법이 있습니다. 다음으로, 이 기사에서는 Laravel 5.5+ 프레임워크를 사용하여 404 응답을 더 잘 구현하는 방법을 소개합니다. 구체적인 내용을 살펴보겠습니다.
Laravel 5.5.10은 사용자에게 더 나은 404 페이지를 제공하는 데 도움이 되는 두 가지 유용한 라우터 방법을 캡슐화합니다. 이제 404 예외가 발생하면 Laravel은 사용자 UI에 표시하도록 사용자 정의할 수 있는 아름다운 404.blade.php 보기 파일을 표시하지만 이 보기에는 액세스할 수 없습니다. session, cookie, 인증(auth) 등...
laravel 5.5.10에는 새로운 # 🎜🎜이 있습니다. #Route::fallback() 요청과 일치하는 다른 경로가 없을 때 Laravel이 대체할 경로를 정의하는 데 사용되는 메서드입니다.
Route::fallback(function () { return 'Sorry' . auth()->user()->name . '! This page does not exist.'; });
Route::fallback(function() { return response()->view('notFound', [], 404); });
@extends('layout.app') @section('content') <h3>Sorry! this page doesn't exist.</h3> @stop
web.php 경로 파일에서 폴백을 정의하면 라우팅할 때 모든 미들웨어는 web 미들웨어 그룹이 실행되어 session 데이터를 얻을 수 있습니다.
API 인터페이스 설명이제/non-existing-page를 클릭하면 View에 정의된 대체 경로가 표시됩니다. /api/non-existing-endpoint을 클릭할 때 이 인터페이스를 제공하지 않으려면 api 대체 경로에서 JSON을 정의하면 됩니다. , api.php 라우팅 파일로 이동하여 다른 대체 경로를 정의합니다.
Route::fallback(function() { return response()->json(['message' => 'Not Found!]); });
/api#🎜 🎜#이 포함되어 있습니다. 접두사, /api 접두사가 있는 정의되지 않은 모든 경로는 #🎜 🎜#web.php#🎜 대신 api.php 라우팅 파일의 대체 경로로 이동됩니다. 🎜# 라우팅 파일에 정의된 것입니다. abort(404) 및 ModelNotFound 예외 사용
abort(404)404.blade.php 뷰 파일을 렌더링하며 동일한 ModelNotFoundException 예외도 동일한 방식으로 처리됩니다. 그러면 일반 보기 대신 대체 경로 보기를 더 잘 렌더링하기 위해 무엇을 할 수 있습니까?
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'); }
Route::fallback(function(){ return 'We could not find this server, there are other '. auth()->user()->servers()->count() . ' under your account ......'; })->name('serverFallback');
mac mamp ngiux laravel 프레임워크에서 404 오류 보고
위 내용은 Laravel 5.5+ 프레임워크를 사용하여 404 응답을 더 잘 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!