recherche
Maisoncadre phpLaravelComment résoudre les erreurs Laravel

Pendant le processus de développement utilisant le framework Laravel, diverses erreurs ou exceptions se produiront inévitablement. Comment dépanner rapidement les erreurs et résoudre les problèmes est un défi auquel sont confrontés les développeurs de base. Cet article vous présentera les méthodes de dépannage des erreurs Laravel et vous aidera à obtenir deux fois le résultat avec la moitié de l'effort pendant le processus de développement.

1. Logging

Laravel enregistrera les informations du journal dans différents fichiers selon différents niveaux (débogage, information, avis, avertissement, erreur, critique, alerte, urgence). Nous pouvons rapidement trouver des erreurs dans le code en consultant les fichiers journaux.

1.1 Afficher les fichiers journaux

Ouvrez le répertoire storage/logs dans le répertoire racine du projet et vous pourrez voir le fichier laravel.log. Il s'agit du fichier journal total de tous les niveaux de journaux du système. le journal enregistre à un certain niveau, vous pouvez configurer dans le fichier config/logging.php ;

Dans le fichier journal, vous pouvez filtrer et afficher les informations d'erreur en fonction de l'heure, du processus, du niveau et d'autres conditions. L'utilisation spécifique est la suivante :

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 Réglage du niveau

Grâce à la classe app/Exceptions/Handler.php du propre répertoire de Laravel, vous pouvez voir que le niveau de journalisation est défini dans le premier paramètre de la fonction report(), Laravel par défaut Le niveau de journalisation est une erreur, ce qui signifie que seuls les journaux avec un niveau d'erreur ou plus seront enregistrés dans le fichier journal app/public/storage/logs/laravel.log.

Si vous souhaitez écrire tous les journaux avec un niveau d'avertissement et supérieur dans le fichier journal, vous pouvez ajouter le niveau de départ dans le premier paramètre de la fonction report(), comme indiqué ci-dessous :

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

    parent::report($exception);
}

Grâce à Log::channel(' l'opération quotidienne ')->warning(), écrit les informations et le niveau d'erreur dans le journal et détermine s'ils doivent être écrits dans le journal via la méthode ShouldReport().

2. Gestion des exceptions

Dans les applications Laravel, la façon de lancer des exceptions personnalisées est très simple, il suffit de procéder comme suit :

2.1 Exceptions personnalisées

Créez une nouvelle classe d'exception et héritez de la classe d'exception par défaut de Laravel, comme indiqué ci-dessous. :

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);
    }
}

Dans la méthode de construction, nous pouvons définir les informations d'exception et le code d'état, enregistrer le journal des erreurs dans la méthode report() et renvoyer les informations d'exception et l'état au format JSON dans le code de la méthode render().

Lorsqu'une CustomException se produit dans l'application, Laravel exécutera automatiquement la méthode report() pour enregistrer les informations d'erreur dans le fichier journal et renverra les informations d'exception au front-end via la méthode render().

2.2 Déclencher une exception

Utilisez la méthode throw new CustomException () dans le code pour lever une exception, comme indiqué ci-dessous :

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

3. Débogage d'erreur

Lors du développement ou des tests, vous devez parfois saisir le débogage dans le code informations pour faciliter la recherche du problème. Dans Laravel, nous pouvons rapidement afficher des informations de débogage et interrompre les résultats de l'exécution du programme via les fonctions dump() et dd().

3.1 dump() et dd()

La fonction dump() est utilisée pour imprimer le contenu de variables ou de tableaux sans interrompre l'exécution du programme. Similaire à la fonction var_dump() intégrée de PHP. La fonction

dd() imprimera non seulement le contenu de la variable ou du tableau, mais interrompra également l'exécution du programme et affichera la pile de code traitée à la position actuelle et les informations spécifiques de l'exception. Semblable aux fonctions die() ou exit() intégrées à PHP.

Route::get('/test', function () {
    dump('Hello Laravel!');
    return response()->json(['key' => 'value']);
});

Route::get('/test2', function () {
    $array = ['key_one' => 'value_one', 'key_two' => 'value_two'];
    dd($array);
    return response()->json(['key' => 'value']);
});

Dans le code ci-dessus, nous utilisons les méthodes dump() et dd() pour imprimer le contenu des chaînes et des tableaux. L'utilisation est similaire aux fonctions natives PHP, ce qui est très pratique.

4. Conclusion

Pendant le processus de développement de Laravel, divers messages d'erreur apparaîtront toujours pour diverses raisons. Comment dépanner et résoudre efficacement ces erreurs est un problème auquel chaque développeur doit être confronté. Dans cet article, nous présentons plusieurs méthodes de dépannage courantes telles que la journalisation Laravel, la gestion des exceptions et le débogage des erreurs. Nous espérons que cela vous sera utile lors du développement dans Laravel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Laravel (PHP) contre Python: différents cas d'utilisation et applicationsLaravel (PHP) contre Python: différents cas d'utilisation et applicationsApr 18, 2025 am 12:16 AM

La sélection de Laravel ou Python dépend des exigences du projet: 1) Si vous devez développer rapidement des applications Web et utiliser des systèmes ORM et d'authentification, choisissez Laravel; 2) Si cela implique l'analyse des données, l'apprentissage automatique ou l'informatique scientifique, choisissez Python.

Laravel et Python: trouver le bon outilLaravel et Python: trouver le bon outilApr 18, 2025 am 12:14 AM

Laravel convient rapidement à la création d'applications Web, et Python convient aux projets qui nécessitent une flexibilité et une polyvalence. 1) Laravel fournit des fonctionnalités riches telles que ORM et le routage, adaptées à l'écosystème PHP. 2) Python est connu pour sa syntaxe concise et un puissant écosystème de bibliothèque, et convient à des domaines tels que le développement Web et la science des données.

Laravel et PHP: Création de sites Web dynamiquesLaravel et PHP: Création de sites Web dynamiquesApr 18, 2025 am 12:12 AM

Utilisez Laravel et PHP pour créer des sites Web dynamiques efficacement et amusants. 1) Laravel suit l'architecture MVC, et le moteur du modèle de lame simplifie l'écriture HTML. 2) Le système de routage et le mécanisme de traitement des demandes facilitent la définition de l'URL et le traitement des entrées utilisateur. 3) Eloquentorm simplifie les opérations de base de données. 4) L'utilisation de la migration de la base de données, des opérations CRUD et des modèles de lame est démontrée par l'exemple du système de blog. 5) Laravel offre de puissantes fonctions d'authentification et d'autorisation des utilisateurs. 6) Les compétences de débogage comprennent l'utilisation de systèmes de journalisation et d'outils artisanaux. 7) Les suggestions d'optimisation des performances comprennent le chargement paresseux et la mise en cache.

Laravel et la pile complète: avant et dos ensembleLaravel et la pile complète: avant et dos ensembleApr 18, 2025 am 12:07 AM

Laravel réalise le développement complet à travers le moteur du modèle de lame, l'éloquente, les outils artisanaux et Laravelmix: 1. La lame simplifie le développement frontal; 2. Eloquent simplifie les opérations de base de données; 3. Artisan améliore l'efficacité du développement; 4. Laravelmix gère les ressources frontales.

Laravel: un cadre pour le développement Web moderneLaravel: un cadre pour le développement Web moderneApr 18, 2025 am 12:05 AM

Laravel est un cadre moderne basé sur PHP qui suit le modèle d'architecture MVC, fournit des outils et des fonctions riches et simplifie le processus de développement Web. 1) Il contient Eloquentorm pour l'interaction de la base de données, 2) Interface de ligne de commande artisanale pour la génération rapide de code, 3) le moteur de modèle de lame pour le développement efficace de la vue, 4) Système de routage puissant pour définir la structure de l'URL, 5) Système d'authentification pour la gestion des utilisateurs, 6) Écoute des événements et plus efficaces pour des fonctions en temps réel, 7) Cache et des systèmes de file d'attente pour l'optimisation des performances, ce qui facilite et plus efficace des fonctions en temps réel et maintiennent des applications Web modernes.

Laravel (PHP) contre Python: peser les avantages et les inconvénientsLaravel (PHP) contre Python: peser les avantages et les inconvénientsApr 17, 2025 am 12:18 AM

Laravel convient rapidement à la création d'applications Web, tandis que Python convient à une gamme plus large de scénarios d'application. 1.Laravel fournit des outils éloquents, moteur de modèle de lame et artisanaux pour simplifier le développement Web. 2. Python est connu pour ses types dynamiques, sa riche bibliothèque standard et son écosystème tiers, et convient au développement Web, à la science des données et à d'autres domaines.

Laravel vs Python: Comparaison des frameworks et des bibliothèquesLaravel vs Python: Comparaison des frameworks et des bibliothèquesApr 17, 2025 am 12:16 AM

Laravel et Python ont chacun leurs propres avantages: Laravel convient rapidement à la création d'applications Web riches en fonctionnalités, et Python fonctionne bien dans les domaines de la science des données et de la programmation générale. 1.Laravel fournit des moteurs éloquents et modèles de lame, adaptés à la création d'applications Web modernes. 2. Python a une bibliothèque standard riche et une bibliothèque tierce, et les cadres Django et Flask répondent à différents besoins de développement.

Objectif de Laravel: Construire des applications Web robustes et élégantesObjectif de Laravel: Construire des applications Web robustes et élégantesApr 17, 2025 am 12:13 AM

Laravel mérite d'être choisi car il peut rendre la structure du code claire et le processus de développement plus artistique. 1) Laravel est basé sur PHP, suit l'architecture MVC et simplifie le développement Web. 2) Ses fonctions de base telles que l'éloquente, les outils artisanaux et les modèles de lame améliorent l'élégance et la robustesse du développement. 3) Grâce au routage, aux contrôleurs, aux modèles et aux vues, les développeurs peuvent créer efficacement des applications. 4) Les fonctions avancées telles que la surveillance des files d'attente et des événements améliorent encore les performances de l'application.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.