{"id":24519,"date":"2021-05-20T19:15:00","date_gmt":"2021-05-20T16:15:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24519"},"modified":"2021-10-17T20:47:41","modified_gmt":"2021-10-17T17:47:41","slug":"kuinka-kirjata-kysely-laraveliin","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-kirjata-kysely-laraveliin\/","title":{"rendered":"Kuinka kirjata kysely Laraveliin"},"content":{"rendered":"<p>Haluatko tulostaa kyselyn Laravelissa? Tai toisin sanoen, haluatko kirjautua kyselyihin Laravelissa? Molemmilla kysymyksill\u00e4 on hieman erilaiset vastaukset. Kyselyn tulostamista varten voit vain tulostaa viimeksi suoritetun kyselyn ja n\u00e4ytt\u00e4\u00e4 sen selaimessa. Mutta suosittelen, ett\u00e4 kirjaat kyselyn Laraveliin. T\u00e4ll\u00f6in kaikki kyselyt tallennetaan lokitiedostoon ja voit tarkastella sit\u00e4 milloin tahansa.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n sinulle molemmat vaihtoehdot, jotka auttavat k\u00e4ytt\u00e4j\u00e4\u00e4 tarkastelemaan kyselyj\u00e4 Laravel-sovelluksessaan.<\/p>\n<p>Kun kehit\u00e4t Laravel-sovellusta, saatat joskus t\u00f6rm\u00e4t\u00e4 tilanteeseen, jossa sinun on tarkistettava, onko kirjoitettu kysely oikea vai ei. T\u00e4m\u00e4 johtuu useista syist\u00e4 &#8211; ehk\u00e4 k\u00e4ytt\u00e4j\u00e4t eiv\u00e4t saa odotettua tulosta, saat vastauksen hitaasti tietokantapalvelimelta tai et saa mit\u00e4\u00e4n tulostusta vikana kyselyss\u00e4si jne. Kaikissa n\u00e4iss\u00e4 tilanteissa jos kirjaat kyselyn, se auttaa ongelman virheenkorjauksessa.<\/p>\n<h3>Kuinka kysely tulostetaan Laravelissa?<\/h3>\n<p>Viimeisen suoritetun kyselyn tulostaminen on kertaluonteinen prosessi. Saatat joutua vain tulostamaan kyselysi selaimeen. Se ei tallenna kysely\u00e4 mihink\u00e4\u00e4n. Alla on yksinkertainen esimerkki kyselyn tulostamisesta Laravelissa.<\/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>T\u00e4ss\u00e4 olen k\u00e4ytt\u00e4nyt kahta lausetta <code>DB::enableQueryLog()<\/code>ja <code>dd(DB::getQueryLog())<\/code>. Ensimm\u00e4inen k\u00e4sky mahdollistaa kyselyn kirjaamisen, kun taas toinen k\u00e4sky tulostaa t\u00e4m\u00e4n lokin selaimelle. T\u00e4m\u00e4 virheenkorjaustekniikka toimii my\u00f6s Laravel Eloquentin kanssa.<\/p>\n<p>T\u00e4t\u00e4 menetelm\u00e4\u00e4 voidaan k\u00e4ytt\u00e4\u00e4, jos he eiv\u00e4t halua kirjautua kyselyihin. Mutta kuten aiemmin sanottiin, t\u00e4m\u00e4 ei ole oikeastaan \u200b\u200bk\u00e4tev\u00e4 tapa. Koska, jos noudatat t\u00e4t\u00e4 tekniikkaa, sinun on toistettava n\u00e4m\u00e4 kaksi lausetta <code>DB::enableQueryLog()<\/code>ja <code>dd(DB::getQueryLog())<\/code>jokaiselle kyselylle.<\/p>\n<p>Parempi vaihtoehto on kaikkien kyselyjen kirjaaminen lokitiedostoon.<\/p>\n<h3>Lokikysely Laravelissa<\/h3>\n<p>Suosittelen tekniikkaa, jolla kyselyt kirjataan Laraveliin. Se on helpompi ja k\u00e4tev\u00e4mpi tapa kehitt\u00e4jille. Sinun ei tarvitse menn\u00e4 jokaisen kyselyn paikkaan ja kirjoittaa kirjaamista varten koodia.<\/p>\n<p>Sen sijaan sinun tarvitsee vain muokata <code>AppServiceProvider.php<\/code>ja olet valmis.<\/p>\n<p>Avaa <code>app\/Providers\/AppServiceProvider.php<\/code>tiedosto ja lis\u00e4\u00e4 2 julkisivua tiedostoille ja DB: lle seuraavasti.<\/p>\n<pre><code>use IlluminateSupportFacadesFile;\nuse IlluminateSupportFacadesDB;<\/code><\/pre>\n<p>Seuraavaksi <code>boot()<\/code>menetelm\u00e4ss\u00e4 kirjoittaa alla koodi, joka kirjautuu kaikki Laravel kyselyt taustalla.<\/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>Nyt kun kysely suoritetaan, se kirjautuu automaattisesti <code>storage\/logs\/query.log<\/code>tiedostoon. K\u00e4ytt\u00e4j\u00e4 voi tarkastella kyselyit\u00e4 suoraan t\u00e4ss\u00e4 <code>query.log<\/code>tiedostossa.<\/p>\n<p>Laravelissa on viel\u00e4 yksi tapa kyselyjen kirjaamiseen. T\u00e4ll\u00e4 tavalla kyselylokisi tallennetaan <code>storage\/logs\/laravel.log<\/code>tiedostoon. T\u00e4t\u00e4 varten sinun on lis\u00e4tt\u00e4v\u00e4 alla oleva koodi <code>routes\/web.php<\/code>tiedostoon.<\/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>Se siit\u00e4! Nyt sinun on k\u00e4ytett\u00e4v\u00e4 jompaa kumpaa yll\u00e4 olevista menetelmist\u00e4 kyselyjen kirjaamiseen. Sinun ei tarvitse k\u00e4ytt\u00e4\u00e4 molempia menetelmi\u00e4 kerrallaan.<\/p>\n<p>Kyse on kyselyjen kirjaamisesta Laraveliin. Toivon, ett\u00e4 t\u00e4m\u00e4 artikkeli on hy\u00f6dyllinen sovelluksellesi. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-luoda-oma-404-virhesivu-laravelissa\/\" title=\"Kuinka luoda oma 404-virhesivu Laravelissa\" >Kuinka luoda oma 404-virhesivu Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-integroida-mailchimp-uutiskirje-laravel-sovellukseen\/\" title=\"Kuinka integroida MailChimp-uutiskirje Laravel-sovellukseen\" >Kuinka integroida MailChimp-uutiskirje Laravel-sovellukseen<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 artikkelissa tutkitaan, miten kysely kirjataan Laraveliin. T\u00e4ss\u00e4 kehitysvaiheessa on hy\u00f6dyllist\u00e4 luoda loki kyselyist\u00e4. Se auttaa meit\u00e4 selvitt\u00e4m\u00e4\u00e4n ongelmat ja virheet kyselyiss\u00e4mme. Laravel tarjoaa k\u00e4tev\u00e4n tavan hakemusten kirjaamiseen sovelluksessamme.<\/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":[499],"tags":[843],"class_list":["post-24519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24519"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24519\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}