Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Comment enregistrer une requête dans Laravel

171

Vous cherchez à imprimer la requête dans Laravel? Ou en d’autres termes, voulez-vous enregistrer des requêtes dans Laravel ? Les deux questions ont des réponses légèrement différentes. Pour imprimer la requête, vous pouvez simplement imprimer la dernière requête exécutée et l’afficher sur un navigateur. Mais je vous recommanderais de consigner la requête dans Laravel. Ce faisant, toutes vos requêtes seront enregistrées dans le fichier journal et vous pourrez le consulter à tout moment.

Dans cet article, je vous montre les deux options qui aident un utilisateur à afficher les requêtes dans son application Laravel.

Lorsque vous développez une application Laravel, vous pouvez parfois rencontrer une situation où vous devez voir si la requête écrite est correcte ou non. Cela est dû à plusieurs raisons – peut-être que les utilisateurs n’obtiennent pas le résultat attendu, que vous obtenez une réponse lente d’un serveur de base de données, ou que vous n’obtenez aucun résultat avec votre requête, etc. si vous enregistrez la requête, cela aidera à déboguer le problème.

Comment imprimer une requête dans Laravel?

L’impression de la dernière requête exécutée est un processus unique. Vous devrez peut-être simplement imprimer votre requête dans le navigateur. Il ne stocke la requête nulle part. Vous trouverez ci-dessous un exemple simple pour imprimer votre requête dans Laravel.

DB::enableQueryLog();
$arr_user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());

Ici, j’ai utilisé deux déclarations DB::enableQueryLog()et dd(DB::getQueryLog()). La première instruction active la journalisation des requêtes, tandis que la seconde instruction imprime en fait ce journal sur le navigateur. Cette technique de débogage fonctionne également avec Laravel Eloquent.

On peut utiliser cette méthode s’ils ne veulent pas enregistrer les requêtes. Mais comme dit précédemment, ce n’est pas vraiment un moyen pratique. Parce que, si vous suivez cette technique, vous devez répéter ces deux instructions DB::enableQueryLog()et dd(DB::getQueryLog())pour chaque requête.

La meilleure option consiste à consigner toutes les requêtes dans le fichier journal.

Requête de journal dans Laravel

Je recommande une technique de journalisation des requêtes dans Laravel. C’est un moyen plus simple et pratique pour les développeurs. Vous n’avez pas besoin d’aller à la place de chaque requête et d’écrire le code pour la journalisation.

Au lieu de cela, il vous suffit de modifier AppServiceProvider.phpet vous avez terminé.

Ouvrez le app/Providers/AppServiceProvider.phpfichier et ajoutez 2 façades pour ‘Fichier’ et ‘DB’ comme suit.

use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;

Ensuite, dans la boot()méthode, écrivez un code ci-dessous qui enregistrera toutes vos requêtes Laravel en arrière-plan.

public function boot()
{
    if(env('APP_DEBUG')) {
        DB::listen(function($query) {
            File::append(
                storage_path('/logs/query.log'),
                $query->sql. ' ['. implode(', ', $query->bindings). ']'. PHP_EOL
           );
        });
    }
}

Désormais, chaque fois qu’une requête est exécutée, elle sera automatiquement enregistrée dans le storage/logs/query.logfichier. L’utilisateur peut visualiser directement ses requêtes dans ce query.logfichier.

Dans Laravel, un autre moyen est disponible pour enregistrer les requêtes. De cette façon, vos journaux de requêtes sont stockés dans le storage/logs/laravel.logfichier. Pour ce faire, vous devez placer le code ci-dessous dans votre routes/web.phpfichier.

DB::listen(function($sql) {
    Log::info($sql->sql);
    Log::info($sql->bindings);
    Log::info($sql->time);
});

C’est ça! Maintenant, c’est à vous d’utiliser l’une des méthodes ci-dessus pour enregistrer les requêtes. Vous n’avez pas besoin d’utiliser les deux méthodes à la fois.

Il s’agit de consigner les requêtes dans Laravel. J’espère que cet article sera utile pour votre candidature. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails