ラボ > Laravel、Lumen:views関連、エラー関連

laravel8 abort()のメモ

エラーページに飛ばすのに「abort()」を使ったらエラーになるという面倒な仕様なので、調べてメモっておく

作成日:2023-01-04, 更新日:2023-07-03

私の環境

WIN+Docker+Ubuntuでlaravelを使うための作業メモ

基本

▼好きなトコで記載すると対象のエラーページに飛ばしてくれる

abort(404);

デフォルトのまま「abort()」で使える値が「401, 403, 404, 419, 429, 500, 503」らしい

「abort(400);」でエラー

▼「400(Bad Request)」にしようとして「abort(400);」でエラー

mfony\Component\HttpKernel\Exception\HttpException

調べると「resources/views/errors/400.blade.php」が必要らしい

対応

  1. エラーページをマルっと用意
  2. 必要なページを作成

エラーページをマルっと用意

$ ./vendor/bin/sail php artisan vendor:publish --tag=laravel-errors

→「resources/views/errors/xxx.blade.php」が色々と作られる

必要なページを作成

今回は「400」が欲しいので「400.blade.php」をつくる

▼「401.blade.php」を複製して「400.blade.php」を作り、中身を修正

@extends('errors::minimal')

@section('title', __('Bad Request'))
@section('code', '400')
@section('message', __('Bad Request'))

※「@extends('errors::minimal')」を改修すればレイアウトも変更できるっぽい

レイアウト変更

  • 「@extends('errors::minimal')」を「@extends('errors::layout')」にする
  • 「resources/views/errors/layout.blade.php」を好きにする

メッセージを増やしたい

「@section()」と「@yield()」を増やす

▼「400.blade.php」

@extends('errors::layout')

@section('title', __('Bad Request'))
@section('code', '400')
@section('message', __('Bad Request'))
@section('summary', __('ほげほげ'))

▼「layout.blade.php」の好きな場所に追加

@yield('summary')

関連項目