{"id":24718,"date":"2021-05-20T19:10:00","date_gmt":"2021-05-20T16:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24718"},"modified":"2021-10-18T03:11:53","modified_gmt":"2021-10-18T00:11:53","slug":"come-registrare-la-query-in-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-registrare-la-query-in-laravel\/","title":{"rendered":"Come registrare la query in Laravel"},"content":{"rendered":"<p>Stai cercando di stampare la query in Laravel? O in altre parole, vuoi registrare le query in Laravel? Entrambe le domande hanno risposte leggermente diverse. Per stampare la query, puoi semplicemente stampare l&#8217;ultima query eseguita e visualizzarla su un browser. Ma ti consiglierei di registrare la query in Laravel. In questo modo, tutte le tue query verranno salvate nel file di registro e potrai visualizzarlo in qualsiasi momento.<\/p>\n<p>In questo articolo, ti mostro entrambe le opzioni che aiutano un utente a visualizzare le query nella sua applicazione Laravel.<\/p>\n<p>Quando sviluppi un&#8217;applicazione Laravel, a volte potresti imbatterti in una situazione in cui devi vedere se la query scritta \u00e8 corretta o meno. Ci\u00f2 \u00e8 dovuto a diversi motivi: forse gli utenti non ricevono un output previsto, ricevi una risposta lenta da un server di database o non ottieni alcun output come qualcosa di sbagliato nella tua query, ecc. In tutti questi scenari, se stai registrando la query, sar\u00e0 utile per eseguire il debug del problema.<\/p>\n<h3>Come stampare la query in Laravel?<\/h3>\n<p>La stampa dell&#8217;ultima query eseguita \u00e8 un processo una tantum. Potrebbe essere necessario stampare semplicemente la query sul browser. Non memorizza la query da nessuna parte. Di seguito \u00e8 riportato un semplice esempio per stampare la query in 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>Qui ho usato due affermazioni <code>DB::enableQueryLog()<\/code>e <code>dd(DB::getQueryLog())<\/code>. La prima istruzione abilita la registrazione della query, mentre la seconda stampa effettivamente questo registro sul browser. Questa tecnica di debug funziona anche con Laravel Eloquent.<\/p>\n<p>\u00c8 possibile utilizzare questo metodo se non si desidera registrare le query. Ma come detto in precedenza questo non \u00e8 in realt\u00e0 un modo conveniente. Perch\u00e9, se segui questa tecnica, devi ripetere queste due affermazioni <code>DB::enableQueryLog()<\/code>e <code>dd(DB::getQueryLog())<\/code>per ogni query.<\/p>\n<p>L&#8217;opzione migliore \u00e8 registrare tutte le query nel file di registro.<\/p>\n<h3>Query di registro in Laravel<\/h3>\n<p>Raccomando una tecnica di registrazione delle query in Laravel. \u00c8 un modo pi\u00f9 semplice e conveniente per gli sviluppatori. Non \u00e8 necessario andare al luogo di ogni query e scrivere il codice per la registrazione.<\/p>\n<p>Invece, devi solo modificare <code>AppServiceProvider.php<\/code>e il gioco \u00e8 fatto.<\/p>\n<p>Apri il <code>app\/Providers\/AppServiceProvider.php<\/code>file e aggiungi 2 Facades per &#8216;File&#8217; e &#8216;DB&#8217; come segue.<\/p>\n<pre><code>use IlluminateSupportFacadesFile;\nuse IlluminateSupportFacadesDB;<\/code><\/pre>\n<p>Successivamente, nel <code>boot()<\/code>metodo scrivi un codice sottostante che registrer\u00e0 tutte le tue query Laravel in background.<\/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>Ora, ogni volta che viene eseguita una query, si registrer\u00e0 automaticamente nel <code>storage\/logs\/query.log<\/code>file. L&#8217;utente pu\u00f2 visualizzare direttamente le proprie query in questo <code>query.log<\/code>file.<\/p>\n<p>In Laravel, \u00e8 disponibile un altro modo per registrare le query. In questo modo i log delle query vengono archiviati all&#8217;interno del <code>storage\/logs\/laravel.log<\/code>file. Per fare ci\u00f2, devi inserire il codice seguente nel tuo <code>routes\/web.php<\/code>file.<\/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>Questo \u00e8 tutto! Ora tocca a te utilizzare uno dei metodi precedenti per la registrazione delle query. Non \u00e8 necessario utilizzare entrambi i metodi alla volta.<\/p>\n<p>Si tratta di registrare le query in Laravel. Spero che questo articolo possa essere utile per la tua applicazione. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-creare-una-pagina-di-errore-404-personalizzata-in-laravel\/\" title=\"Come creare una pagina di errore 404 personalizzata in Laravel\" >Come creare una pagina di errore 404 personalizzata in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-integrare-la-newsletter-di-mailchimp-nell-applicazione-laravel\/\" title=\"Come integrare la newsletter di MailChimp nell'applicazione Laravel\" >Come integrare la newsletter di MailChimp nell&#8217;applicazione Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo, studiamo come registrare le query in Laravel. In questa fase di sviluppo, \u00e8 utile avere un registro delle query. Ci aiuta a scoprire glitch, errori nelle nostre query. Laravel fornisce un modo conveniente per registrare le query nella nostra applicazione.<\/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":[500],"tags":[846],"class_list":["post-24718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24718"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24718\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}