✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man loggar frågan i Laravel

11

Vill du skriva ut frågan i Laravel? Eller med andra ord, vill du logga frågor i Laravel? Båda frågorna har något olika svar. För att skriva ut frågan kan du bara skriva ut den senast genomförda frågan och visa den i en webbläsare. Men jag skulle rekommendera att du loggar frågan i Laravel. Om du gör det sparas alla dina frågor i loggfilen och du kan se den när som helst.

I den här artikeln visar jag båda alternativen som hjälper en användare att se frågorna i deras Laravel-applikation.

När du utvecklar en Laravel-applikation kan du ibland stöta på en situation där du måste se om den skriftliga frågan är korrekt eller inte. Detta beror på flera skäl – kanske får användarna inte en förväntad utdata, du får ett långsamt svar från en databasserver, eller så får du ingen utdata som något fel med din fråga etc. I alla dessa scenarier, om du loggar frågan så hjälper det att felsöka problemet.

Hur skriver jag ut frågor i Laravel?

Att skriva ut den senast utförda frågan är en engångsprocess. Du kan behöva skriva ut din fråga i webbläsaren. Frågan lagras inte någonstans. Nedan följer ett enkelt exempel för att skriva ut din fråga i Laravel.

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

Här har jag använt två uttalanden DB::enableQueryLog()och dd(DB::getQueryLog()). Det första uttalandet möjliggör loggning av frågan, medan det andra uttalandet faktiskt skriver ut denna logg i webbläsaren. Denna felsökningsteknik fungerar också med Laravel Eloquent.

Man kan använda den här metoden om de inte vill logga frågor. Men som sagt tidigare är detta faktiskt inte ett bekvämt sätt. För om du följer den här tekniken måste du upprepa dessa två påståenden DB::enableQueryLog()och dd(DB::getQueryLog())för varje fråga.

Det bättre alternativet är att logga alla frågor i loggfilen.

Loggfråga i Laravel

Jag rekommenderar en teknik för att logga frågor i Laravel. Det är ett enklare och bekvämare sätt för utvecklare. Du behöver inte gå till platsen för varje fråga och skriva koden för loggning.

Istället behöver du bara redigera AppServiceProvider.phpoch du är klar.

Öppna app/Providers/AppServiceProvider.phpfilen och lägg till två fasader för ‘File’ och ‘DB’ enligt följande.

use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;

Därefter boot()skriver du i metoden en nedanstående kod som loggar alla dina Laravel-frågor i bakgrunden.

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

Nu, när en fråga körs, loggas den automatiskt i storage/logs/query.logfilen. Användaren kan visa sina frågor direkt i den här query.logfilen.

I Laravel finns det ytterligare ett sätt att logga frågorna. På detta sätt lagras dina frågeloggar i storage/logs/laravel.logfilen. För att göra det måste du placera koden nedan i din routes/web.phpfil.

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

Det är allt! Nu är det upp till dig att använda någon av ovanstående metoder för att logga frågorna. Du behöver inte använda båda metoderna åt gången.

Det handlar om att logga frågorna i Laravel. Jag hoppas att den här artikeln kommer att vara användbar för din ansökan. Dela dina tankar och förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer