...
✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak rejestrować zapytanie w Laravel

25

Czy chcesz wydrukować zapytanie w Laravel? Innymi słowy, czy chcesz rejestrować zapytania w Laravelu? Oba pytania mają nieco inne odpowiedzi. Aby wydrukować zapytanie, możesz po prostu wydrukować ostatnie wykonane zapytanie i wyświetlić je w przeglądarce. Ale sugerowałbym zarejestrowanie zapytania w Laravel. Dzięki temu wszystkie Twoje zapytania zostaną zapisane w pliku dziennika i będziesz mógł je wyświetlić w dowolnym momencie.

W tym artykule pokażę obie opcje, które pomogą użytkownikowi przeglądać zapytania w jego aplikacji Laravel.

Kiedy tworzysz aplikację Laravel, czasami możesz natknąć się na sytuację, w której musisz sprawdzić, czy napisane zapytanie jest poprawne, czy nie. Dzieje się tak z kilku powodów – być może użytkownicy nie otrzymują oczekiwanych wyników, otrzymujesz powolną odpowiedź z serwera bazy danych lub nie otrzymujesz żadnych danych wyjściowych jako coś nie tak z zapytaniem itp. We wszystkich tych scenariuszach, jeśli rejestrujesz zapytanie, pomoże to w rozwiązaniu problemu.

Jak wydrukować zapytanie w Laravel?

Drukowanie ostatniego wykonanego zapytania jest procesem jednorazowym. Być może trzeba będzie po prostu wydrukować zapytanie w przeglądarce. Nie przechowuje nigdzie zapytania. Poniżej znajduje się prosty przykład do wydrukowania zapytania w Laravel.

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

Tutaj użyłem dwóch stwierdzeń DB::enableQueryLog()i dd(DB::getQueryLog()). Pierwsza instrukcja umożliwia rejestrowanie zapytań, podczas gdy druga instrukcja faktycznie drukuje ten dziennik w przeglądarce. Ta technika debugowania działa również z Laravel Eloquent.

Można użyć tej metody, jeśli nie chce się logować zapytań. Ale jak wspomniano wcześniej, nie jest to w rzeczywistości wygodny sposób. Ponieważ, jeśli zastosujesz tę technikę, musisz powtórzyć te dwie instrukcje DB::enableQueryLog()i dd(DB::getQueryLog())dla każdego zapytania.

Lepszą opcją jest rejestrowanie wszystkich zapytań w pliku dziennika.

Zapytanie dziennika w Laravel

Polecam technikę logowania zapytań w Laravelu. Jest to łatwiejszy i wygodniejszy sposób dla programistów. Nie musisz wchodzić w miejsce każdego zapytania i pisać kodu do logowania.

Zamiast tego wystarczy edytować AppServiceProvider.phpi gotowe.

Otwórz app/Providers/AppServiceProvider.phpplik i dodaj 2 Fasady dla „Plik" i „DB” w następujący sposób.

use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;

Następnie w boot()metodzie napisz poniższy kod, który będzie logował wszystkie Twoje zapytania Laravel w tle.

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

Teraz każde zapytanie zostanie automatycznie zarejestrowane w storage/logs/query.logpliku. Użytkownik może bezpośrednio przeglądać swoje zapytania w tym query.logpliku.

W Laravelu dostępny jest jeszcze jeden sposób rejestrowania zapytań. W ten sposób dzienniki zapytań są przechowywane w storage/logs/laravel.logpliku. Aby to zrobić, musisz umieścić poniższy kod w swoim routes/web.phppliku.

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

Otóż ​​to! Teraz do Ciebie należy użycie jednej z powyższych metod do rejestrowania zapytań. Nie musisz używać obu metod jednocześnie.

Chodzi o logowanie zapytań w Laravelu. Mam nadzieję, że ten artykuł będzie przydatny w Twojej aplikacji. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów