Comment enregistrer une requête dans Laravel
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.php
et vous avez terminé.
Ouvrez le app/Providers/AppServiceProvider.php
fichier 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.log
fichier. L’utilisateur peut visualiser directement ses requêtes dans ce query.log
fichier.
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.log
fichier. Pour ce faire, vous devez placer le code ci-dessous dans votre routes/web.php
fichier.
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
- Comment créer une page d’erreur 404 personnalisée dans Laravel
- Comment intégrer la newsletter MailChimp dans l’application Laravel