{"id":28101,"date":"2021-05-20T18:53:00","date_gmt":"2021-05-20T15:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28101"},"modified":"2021-10-18T03:43:27","modified_gmt":"2021-10-18T00:43:27","slug":"jak-rejestrowac-zapytanie-w-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-rejestrowac-zapytanie-w-laravel\/","title":{"rendered":"Jak rejestrowa\u0107 zapytanie w Laravel"},"content":{"rendered":"<p>Czy chcesz wydrukowa\u0107 zapytanie w Laravel? Innymi s\u0142owy, czy chcesz rejestrowa\u0107 zapytania w Laravelu? Oba pytania maj\u0105 nieco inne odpowiedzi. Aby wydrukowa\u0107 zapytanie, mo\u017cesz po prostu wydrukowa\u0107 ostatnie wykonane zapytanie i wy\u015bwietli\u0107 je w przegl\u0105darce. Ale sugerowa\u0142bym zarejestrowanie zapytania w Laravel. Dzi\u0119ki temu wszystkie Twoje zapytania zostan\u0105 zapisane w pliku dziennika i b\u0119dziesz m\u00f3g\u0142 je wy\u015bwietli\u0107 w dowolnym momencie.<\/p>\n<p>W tym artykule poka\u017c\u0119 obie opcje, kt\u00f3re pomog\u0105 u\u017cytkownikowi przegl\u0105da\u0107 zapytania w jego aplikacji Laravel.<\/p>\n<p>Kiedy tworzysz aplikacj\u0119 Laravel, czasami mo\u017cesz natkn\u0105\u0107 si\u0119 na sytuacj\u0119, w kt\u00f3rej musisz sprawdzi\u0107, czy napisane zapytanie jest poprawne, czy nie. Dzieje si\u0119 tak z kilku powod\u00f3w \u2013 by\u0107 mo\u017ce u\u017cytkownicy nie otrzymuj\u0105 oczekiwanych wynik\u00f3w, otrzymujesz powoln\u0105 odpowied\u017a z serwera bazy danych lub nie otrzymujesz \u017cadnych danych wyj\u015bciowych jako co\u015b nie tak z zapytaniem itp. We wszystkich tych scenariuszach, je\u015bli rejestrujesz zapytanie, pomo\u017ce to w rozwi\u0105zaniu problemu.<\/p>\n<h3>Jak wydrukowa\u0107 zapytanie w Laravel?<\/h3>\n<p>Drukowanie ostatniego wykonanego zapytania jest procesem jednorazowym. By\u0107 mo\u017ce trzeba b\u0119dzie po prostu wydrukowa\u0107 zapytanie w przegl\u0105darce. Nie przechowuje nigdzie zapytania. Poni\u017cej znajduje si\u0119 prosty przyk\u0142ad do wydrukowania zapytania w Laravel.<\/p>\n<pre><code>DB::enableQueryLog();\n$arr_user = DB::table('users')-&gt;select('name', 'email as user_email')-&gt;get();\ndd(DB::getQueryLog());<\/code><\/pre>\n<p>Tutaj u\u017cy\u0142em dw\u00f3ch stwierdze\u0144 <code>DB::enableQueryLog()<\/code>i <code>dd(DB::getQueryLog())<\/code>. Pierwsza instrukcja umo\u017cliwia rejestrowanie zapyta\u0144, podczas gdy druga instrukcja faktycznie drukuje ten dziennik w przegl\u0105darce. Ta technika debugowania dzia\u0142a r\u00f3wnie\u017c z Laravel Eloquent.<\/p>\n<p>Mo\u017cna u\u017cy\u0107 tej metody, je\u015bli nie chce si\u0119 logowa\u0107 zapyta\u0144. Ale jak wspomniano wcze\u015bniej, nie jest to w rzeczywisto\u015bci wygodny spos\u00f3b. Poniewa\u017c, je\u015bli zastosujesz t\u0119 technik\u0119, musisz powt\u00f3rzy\u0107 te dwie instrukcje <code>DB::enableQueryLog()<\/code>i <code>dd(DB::getQueryLog())<\/code>dla ka\u017cdego zapytania.<\/p>\n<p>Lepsz\u0105 opcj\u0105 jest rejestrowanie wszystkich zapyta\u0144 w pliku dziennika.<\/p>\n<h3>Zapytanie dziennika w Laravel<\/h3>\n<p>Polecam technik\u0119 logowania zapyta\u0144 w Laravelu. Jest to \u0142atwiejszy i wygodniejszy spos\u00f3b dla programist\u00f3w. Nie musisz wchodzi\u0107 w miejsce ka\u017cdego zapytania i pisa\u0107 kodu do logowania.<\/p>\n<p>Zamiast tego wystarczy edytowa\u0107 <code>AppServiceProvider.php<\/code>i gotowe.<\/p>\n<p>Otw\u00f3rz <code>app\/Providers\/AppServiceProvider.php<\/code>plik i dodaj 2 Fasady dla \u201ePlik&quot; i \u201eDB&#8221; w nast\u0119puj\u0105cy spos\u00f3b.<\/p>\n<pre><code>use IlluminateSupportFacadesFile;\nuse IlluminateSupportFacadesDB;<\/code><\/pre>\n<p>Nast\u0119pnie w <code>boot()<\/code>metodzie napisz poni\u017cszy kod, kt\u00f3ry b\u0119dzie logowa\u0142 wszystkie Twoje zapytania Laravel w tle.<\/p>\n<pre><code>public function boot()\n{\n\u00a0\u00a0\u00a0\u00a0if(env('APP_DEBUG')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DB::listen(function($query) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File::append(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0storage_path('\/logs\/query.log'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$query-&gt;sql. ' ['. implode(', ', $query-&gt;bindings). ']'. PHP_EOL\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Teraz ka\u017cde zapytanie zostanie automatycznie zarejestrowane w <code>storage\/logs\/query.log<\/code>pliku. U\u017cytkownik mo\u017ce bezpo\u015brednio przegl\u0105da\u0107 swoje zapytania w tym <code>query.log<\/code>pliku.<\/p>\n<p>W Laravelu dost\u0119pny jest jeszcze jeden spos\u00f3b rejestrowania zapyta\u0144. W ten spos\u00f3b dzienniki zapyta\u0144 s\u0105 przechowywane w <code>storage\/logs\/laravel.log<\/code>pliku. Aby to zrobi\u0107, musisz umie\u015bci\u0107 poni\u017cszy kod w swoim <code>routes\/web.php<\/code>pliku.<\/p>\n<pre><code>DB::listen(function($sql) {\n\u00a0\u00a0\u00a0\u00a0Log::info($sql-&gt;sql);\n\u00a0\u00a0\u00a0\u00a0Log::info($sql-&gt;bindings);\n\u00a0\u00a0\u00a0\u00a0Log::info($sql-&gt;time);\n});<\/code><\/pre>\n<p>Ot\u00f3\u017c \u200b\u200bto! Teraz do Ciebie nale\u017cy u\u017cycie jednej z powy\u017cszych metod do rejestrowania zapyta\u0144. Nie musisz u\u017cywa\u0107 obu metod jednocze\u015bnie.<\/p>\n<p>Chodzi o logowanie zapyta\u0144 w Laravelu. Mam nadziej\u0119, \u017ce ten artyku\u0142 b\u0119dzie przydatny w Twojej aplikacji. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-utworzyc-niestandardowa-strone-bledu-404-w-laravel\/\" title=\"Jak utworzy\u0107 niestandardow\u0105 stron\u0119 b\u0142\u0119du 404 w Laravel?\" >Jak utworzy\u0107 niestandardow\u0105 stron\u0119 b\u0142\u0119du 404 w Laravel?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-zintegrowac-biuletyn-mailchimp-z-aplikacja-laravel\/\" title=\"Jak zintegrowa\u0107 biuletyn MailChimp z aplikacj\u0105 Laravel?\" >Jak zintegrowa\u0107 biuletyn MailChimp z aplikacj\u0105 Laravel?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule dowiemy si\u0119, jak logowa\u0107 zapytania w Laravel. W tej fazie rozwoju pomocne jest posiadanie dziennika zapyta\u0144. Pomaga nam znale\u017a\u0107 usterki, b\u0142\u0119dy w naszych zapytaniach. Laravel zapewnia wygodny spos\u00f3b rejestrowania zapyta\u0144 w naszej aplikacji.<\/p>\n","protected":false},"author":1,"featured_media":21749,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[501],"tags":[847],"class_list":["post-28101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28101"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28101\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}