検索
ホームページPHPフレームワークLaravellaravelエラーのトラブルシューティング方法

Laravel フレームワークを使用した開発プロセスでは、さまざまなエラーや例外が必然的に発生します。エラーのトラブルシューティングを迅速に行い、問題を解決する方法は、基本的な開発者が直面する課題です。この記事では、Laravel エラーのトラブルシューティング方法を紹介し、開発プロセス中の半分の労力で 2 倍の結果を得るのに役立ちます。

1. ロギング

Laravel は、さまざまなレベル (デバッグ、情報、通知、警告、エラー、クリティカル、アラート、緊急) に応じてログ情報をさまざまなファイルに記録します。ログ ファイルを確認すると、コード内のエラーをすぐに見つけることができます。

1.1 ログ ファイルの表示

プロジェクト ルート ディレクトリの storage/logs ディレクトリを開くと、laravel.log ファイルが表示されます。これは、すべてのレベルのログの合計ログ ファイルです。特定のシステムを使用したい場合は、ログ レコードを収集するために config/logging.php ファイルでさまざまなレベルを設定できます;

ログ ファイルでは、時間に基づいてエラー情報をフィルタリングして表示できます。プロセス、レベル、その他の条件。具体的な使い方は以下の通りです。

tail -f storage/logs/laravel.log // 监控最新的日志内容,按Ctrl+C停止
cat storage/logs/laravel.log | grep '关键字' // 搜索包含"关键字"的日志内容
tail -n 100 storage/logs/laravel.log | grep '关键字' // 查看最后100行日志是否包含"关键字"

1.2 レベル設定

Laravelの独自ディレクトリapp/Exceptions/Handler.phpクラスを通して、report()でログレベルが設定されていることがわかります。 function 最初のパラメータでは、Laravel のデフォルトのログ レベルはエラーです。これは、エラー レベル以上のログのみが app/public/storage/logs/laravel.log ログ ファイルに記録されることを意味します。

警告レベル以上のすべてのログをログ ファイルに書き込む場合は、以下に示すように、report() 関数の最初のパラメータに開始レベルを追加できます。 Log::channel('daily')->warning() 操作を通じて、エラー情報とレベルがログに書き込まれ、 shouldReport() メソッドを使用してログを書き込む必要があるかどうかが判断されます。

2. 例外処理

Laravel アプリケーションでカスタム例外をスローする方法は非常に簡単で、次の操作を実行するだけです:

2.1 カスタム例外

以下に示すように、新しい例外クラスを作成し、Laravel のデフォルトの Exception クラスを継承します。

public function report(Exception $exception)
{
    if ($this->shouldReport($exception)) {
        Log::channel('daily')->warning('遇到错误啦!', [
            'error' => $exception->getMessage()
        ]);
    }

    parent::report($exception);
}

構築メソッドでは、例外情報とステータス コードを定義し、report() でレポートできます。メソッド内にログが記録され、render()メソッド内で例外情報とステータスコードがJSON形式で返されます。

アプリケーションでCustomExceptionが発生すると、Laravelは自動的にreport()メソッドを実行してエラー情報をログファイルに記録し、render()メソッドを通じて例外情報をフロントエンドに返します。

2.2 例外をトリガーする

以下に示すように、コード内で throw new CustomException () メソッドを使用して例外をスローします:

namespace AppExceptions;
use Exception;

class CustomException extends Exception
{
    public function __construct($message = null, $code = 0)
    {
        parent::__construct($message, $code); // 调用父类的构造方法
    }
     public function report()
    {
        // 记录错误日志 
        Log::error('CustomException:'.$this->getMessage());
    }

    public function render($request)
    {
        return response()->json(['message' => $this->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
    }
}

3. エラーのデバッグ

開発やテストの際、問題を見つけるためにコードにデバッグ情報を入力する必要がある場合があります。Laravel では、dump() 関数と dd() 関数を使用してデバッグ情報をすばやく出力し、プログラムの実行を中断できます。

3.1 dump() と dd()

dump() 関数は、プログラムの実行を中断せずに変数または配列の内容を出力するために使用されます。 PHP の組み込み var_dump() 関数に似ています。

dd() 関数は、変数または配列の内容を出力するだけでなく、プログラムの実行を中断し、現在位置まで処理されたコード スタックと例外の特定の情報を表示します。 PHP の組み込みの die() 関数または exit() 関数に似ています。

public function test(Request $request)
{
    // ...
    if (! check_validate($request->all())) {
        throw new CustomException('请求参数不正确');
    } 
}

上記のコードでは、dump() メソッドと dd() メソッドを使用して文字列と配列の内容を出力していますが、使い方は PHP のネイティブ関数に似ており、非常に便利です。

4. 結論

Laravel の開発プロセスでは、さまざまな理由でさまざまなエラーメッセージが常に表示されます。これらのエラーを効率的にトラブルシューティングして解決する方法は、すべての開発者が直面しなければならない問題です。この記事では、Laravel のロギング、例外処理、エラーのデバッグなど、一般的なトラブルシューティング方法をいくつか紹介しますので、Laravel で開発する際の参考になれば幸いです。

以上がlaravelエラーのトラブルシューティング方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravel:移行とモデルの違いは何ですか?Laravel:移行とモデルの違いは何ですか?May 16, 2025 am 12:15 AM

移行中の移動型abaseChema、whiLemodelshanddeatainterterction.1)移行の到達、creation、modification、and deleationofables.2)ModelseNtDataandProvideanInterfaceのインタラクションのモデルを許可します

Laravel:ソフト削除または物理削除を使用する方が良いですか?Laravel:ソフト削除または物理削除を使用する方が良いですか?May 16, 2025 am 12:15 AM

softdeletesinlaravelarebetterformaintaininghistoricaldataand aand recoverability、whilephysicaldeletesarepreferablefordataminimizationandprivacy.1)softdeleteSusetheSoftdEletestrait、RecorderStorationAndAudittrails、ButmayincreAdatasizezize.2)Physicaを許可します

Laravel Soft Deletes:実装の包括的なガイドLaravel Soft Deletes:実装の包括的なガイドMay 16, 2025 am 12:11 AM

SoftdeletesinLaravelareafeaturethatallowsyoutomarkrecordsasdeletedwithoutremovingthemfromthedatabase.Toimplementsoftdeletes:1)AddtheSoftDeletestraittoyourmodelandincludethedeleted_atcolumn.2)Usethedeletemethodtosetthedeleted_attimestamp.3)Retrieveall

Laravelの移行の理解:データベーススキーマ制御により簡単になりましたLaravelの移行の理解:データベーススキーマ制御により簡単になりましたMay 16, 2025 am 12:09 AM

laravelMigrationsAreeefectiveTiveettotheirversioncontrolandReversibility、rireminingdatabasemanagementininwebdevelopment.1)それらは、schemachangesinphpclassesをカプセル化し、Easylollbacks.2)移行を抑制することを可能にします

Laravel Migrations:データベース開発のベストプラクティスLaravel Migrations:データベース開発のベストプラクティスMay 16, 2025 am 12:01 AM

laravelMigrationSarebesthenfollowingThePractices:1)useClear、decriptivenAmingformations、 'ademailtouserstable'.2)ensureriversiblewitha'dodod.3)

laravel vue.jsシングルページアプリケーション(SPA)チュートリアルlaravel vue.jsシングルページアプリケーション(SPA)チュートリアルMay 15, 2025 pm 09:54 PM

シングルページアプリケーション(SPA)は、Laravelとvue.jsを使用して構築できます。 1)LaravelでAPIルーティングとコントローラーを定義して、データロジックを処理します。 2)vue.jsでコンポーネントのフロントエンドを作成して、ユーザーインターフェイスとデータインタラクションを実現します。 3)corsを構成し、データインタラクションにaxiosを使用します。 4)Vuerouterを使用してルーティング管理を実装し、ユーザーエクスペリエンスを向上させます。

Laravelでカスタムヘルパー機能を作成する方法は?Laravelでカスタムヘルパー機能を作成する方法は?May 15, 2025 pm 09:51 PM

Laravelでカスタムヘルパー関数を作成する手順は次のとおりです。1。composer.jsonに自動負荷構成を追加します。 2。ComposerDump-Autoloadを実行して、自動ローダーを更新します。 3.アプリ/ヘルパーディレクトリに関数を作成および定義します。これらの関数は、コードを簡素化し、読みやすさと保守性を向上させることができますが、矛盾とテスト可能性の命名に注意してください。

Laravelでデータベーストランザクションを処理する方法は?Laravelでデータベーストランザクションを処理する方法は?May 15, 2025 pm 09:48 PM

Laravelでデータベーストランザクションを処理するときは、DB ::トランザクションメソッドを使用し、次のポイントに注意してください。1。lockforupdate()を使用してレコードをロックします。 2。トライキャッチブロックを使用して例外を処理し、必要に応じて手動でロールバックするか、トランザクションをコミットします。 3.トランザクションのパフォーマンスを検討し、実行時間を短縮します。 4.デッドロックを避けて、Tiramsパラメーターを使用してトランザクションを再試行できます。この要約は、Laravelでトランザクションを優雅に処理する方法を完全に要約し、記事のコアポイントとベストプラクティスを改良します。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。