اگر فکر می کنید که چگونه می توان صفحه خطای سفارشی مانند 403، 404، 405، 408، 500، 502، 504 را روی فریم ورک laravel ایجاد کنید ، می توانید آن را به آسانی انجام دهید و آن را اجرا کنید. شما می توانید صفحه خطای سفارشی را در کل پروژه لاروال تنظیم کنید. اگر می خواهید صفحه خطای 404 را سفارشی طراحی و برنامه نویسی کنید، می توانید آن را به آسانی انجام دهید.
شما می توانید با ایجاد
404.blade.php, 504.blade.php
و ... صفحات خطای سفارشی خود را طراحی کنید. اگر می خواهید بدانید چگونه این کار انجام می شود به کلاس زیر مراجعه کرده و کدهای آن را مطالعه فرمایید:
app/Exceptions/Handler.php
namespace App\Exceptions;
use Exception;
use Illuminate\Validation\ValidationException;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
ValidationException::class,
];
public function report(Exception $e)
{
parent::report($e);
}
public function render($request, Exception $e)
{
if($this->isHttpException($e)){
if (view()->exists('errors.'.$e->getStatusCode()))
{
return response()->view('errors.'.$e->getStatusCode(), [], $e->getStatusCode());
}
}
return parent::render($request, $e);
}
}
برای ساخت یک صفحه خطای اختصاصی کافیست با اسم آن خطا یک صفحه بسازید برای مثال خطای 404 را یک صفحه در قسمت view با نام
404.blade.php
می سازیم به مثال زیر توجه کنید:
resources/views/errors/404.blade.php
@extends('layouts.app')
@section('content')
<div class="error-page">
<h2 class="headline text-info"> 404</h2>
<div class="error-content">
<h3><i class="fa fa-warning text-yellow"></i> Oops! Page not found.</h3>
<p>
We could not find the page you were looking for.
Meanwhile, you may <a href="">return to dashboard</a> or try using the search form.
</p>
</div>
</div>
@endsection