{"id":23768,"date":"2021-05-05T14:50:00","date_gmt":"2021-05-05T11:50:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23768"},"modified":"2021-10-17T21:18:18","modified_gmt":"2021-10-17T18:18:18","slug":"aloittelijan-opas-laravelin-validointiin","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/aloittelijan-opas-laravelin-validointiin\/","title":{"rendered":"Aloittelijan opas Laravelin validointiin"},"content":{"rendered":"<p>Kun rakennamme verkkosivustoa Laraveliin, meid\u00e4n on tiedett\u00e4v\u00e4 Laravelin validoinnista. <a href=\"https:\/\/laravel.com\/docs\/5.6\/validation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel<\/a> tarjoaa eri tavan vahvistaa saapuvat tiedot. T\u00e4ss\u00e4 artikkelissa tutkimme joitain Laravel-validointien perusteita.<\/p>\n<p>Sovellusta rakentaessamme meid\u00e4n on sovellettava asiakas- ja palvelinpuolen tarkistuksia ep\u00e4onnistumatta. N\u00e4in voimme suojata sovelluksemme tarpeettomilta tiedoilta. T\u00e4m\u00e4n seurauksena se s\u00e4\u00e4st\u00e4\u00e4 paljon aikaa j\u00e4tetietojen poistamiseen sovelluksesta.<\/p>\n<p>T\u00e4m\u00e4n j\u00e4lkeen katsotaanpa, kuinka Laravel-vahvistusta voidaan soveltaa sovelluksessasi.<\/p>\n<p>Otamme opetusohjelmaamme varten esimerkkilomakkeen, jolla on 2 kent\u00e4n otsikko ja kuvaus. K\u00e4yt\u00e4mme vahvistusta ja jos vahvistus ep\u00e4onnistuu, se n\u00e4kyy n\u00e4kym\u00e4ss\u00e4mme.<\/p>\n<h3>Laravel-vahvistus<\/h3>\n<p>Aloittamiseksi meid\u00e4n on sis\u00e4llytett\u00e4v\u00e4 alla oleva lauseke ohjaintiedostoon.<\/p>\n<p>Sijoita t\u00e4m\u00e4 lausunto ennen ohjaimen alkua kuten alla.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Validator;\n\u00a0\nclass PostController extends Controller\n{\n\u00a0\u00a0\u00a0.....\n}<\/code><\/pre>\n<p>Ennen kuin kirjoitat todellisen vahvistuskoodin, anna tulla n\u00e4kym\u00e4tiedostoon. Luomme yksinkertaisen lomakkeen, jossa on 2 kent\u00e4n otsikko ja kuvaus.<\/p>\n<pre><code>&lt;form action=\"{{ url('post') }}\" method=\"post\"&gt;\n\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputTitle\"&gt;Post Title&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"title\" id=\"exampleInputTitle\" \/&gt;\n\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputBody\"&gt;Post Body&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;textarea class=\"form-control\" name=\"body\" id=\"exampleInputBody\" rows=\"10\"&gt;&lt;\/textarea&gt;\n\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Kun l\u00e4het\u00e4mme lomakkeen, se kutsuu ohjaimemme <code>store()<\/code>menetelm\u00e4\u00e4. Sinun tapauksessasi ehk\u00e4 menetelm\u00e4si on erilainen. Joten menetelm\u00e4ss\u00e4mme kirjoitamme vahvistuskoodin seuraavasti.<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0$validator = Validator::make($request-&gt;all(), [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title' =&gt; 'required|max:255',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'body' =&gt; 'required',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if ($validator-&gt;fails()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('post\/create')\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withErrors($validator)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withInput();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/safe to proceed form\n}<\/code><\/pre>\n<p>Voit huomata, ett\u00e4 olemme v\u00e4litt\u00e4neet kaksi avainta &#8217;otsikko&#8217; ja &#8217;runko&#8217;. N\u00e4m\u00e4 ovat muotoelementtimme nimi. T\u00e4ss\u00e4 Laravel tarkistaa, eiv\u00e4tk\u00f6 molemmat kent\u00e4t ole tyhji\u00e4 ja otsikkokent\u00e4t eiv\u00e4t ylit\u00e4 255 merkki\u00e4.<\/p>\n<p>Jos jokin vahvistus ep\u00e4onnistuu, k\u00e4ytt\u00e4j\u00e4 ohjaa uudelleenohjaussivulle() johtaneelle sivulle.<\/p>\n<h3>N\u00e4yt\u00e4 virheilmoitukset n\u00e4kym\u00e4ss\u00e4<\/h3>\n<p>Olemme soveltaneet palvelinpuolen tarkistusta. Katsotaan nyt, kuinka virheilmoitukset n\u00e4ytet\u00e4\u00e4n.<\/p>\n<p>Oletetaan, ett\u00e4 vahvistus ep\u00e4onnistuu tapauksessamme, ja nyt meid\u00e4n on n\u00e4ytett\u00e4v\u00e4 virheilmoitukset lomakkeessamme. Laravel-n\u00e4kymiss\u00e4 virheit\u00e4 voidaan n\u00e4ytt\u00e4\u00e4 kahdella tavalla. Ensinn\u00e4kin voimme n\u00e4ytt\u00e4\u00e4 kaikki virheilmoitukset yhdess\u00e4 lomakkeen yl\u00e4osassa. Toisella tavalla voidaan n\u00e4ytt\u00e4\u00e4 se jokaisen kent\u00e4n vieress\u00e4, jossa on virhe.<\/p>\n<p>Jos haluat n\u00e4ytt\u00e4\u00e4 virheilmoituksen lomakkeen yl\u00e4osassa, lis\u00e4\u00e4 alla oleva koodi lomaketunnisteen yl\u00e4puolelle.<\/p>\n<pre><code>@if ($errors-&gt;any())\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-danger\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;ul&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@foreach ($errors-&gt;all() as $error)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;li&gt;{{ $error }}&lt;\/li&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@endforeach\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/ul&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n@endif<\/code><\/pre>\n<p>T\u00e4m\u00e4 koodi n\u00e4ytt\u00e4\u00e4 virheilmoituksen alla olevan kuvakaappauksen mukaisesti:<\/p>\n<p>Toisella tavalla tulostetaan virheilmoitus jokaisen kent\u00e4n j\u00e4lkeen. Siin\u00e4 tapauksessa koodimme on seuraava:<\/p>\n<pre><code>&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0&lt;label for=\"exampleInputTitle\"&gt;Post Title&lt;\/label&gt;\n\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"title\" id=\"exampleInputTitle\" \/&gt;\n\u00a0\u00a0\u00a0@if ($errors-&gt;has('title'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span class=\"error\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{ $errors-&gt;first('title') }}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/span&gt;\n\u00a0\u00a0\u00a0@endif\n\u00a0\n&lt;\/div&gt;\n&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0&lt;label for=\"exampleInputBody\"&gt;Post Body&lt;\/label&gt;\n\u00a0\u00a0\u00a0&lt;textarea class=\"form-control\" name=\"body\" id=\"exampleInputBody\" rows=\"10\"&gt;&lt;\/textarea&gt;\n\u00a0\u00a0\u00a0@if ($errors-&gt;has('body'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span class=\"error\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{ $errors-&gt;first('body') }}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/span&gt;\n\u00a0\u00a0\u00a0@endif\n&lt;\/div&gt;<\/code><\/pre>\n<p>Huomaa, ett\u00e4 <code>@if ($errors-&gt;has('title'))<\/code>tarkistamme, onko otsikko-kent\u00e4ss\u00e4 tarkistusvirhe. Jos t\u00e4ss\u00e4 kent\u00e4ss\u00e4 on virhe, tulostamme sen k\u00e4ytt\u00e4m\u00e4ll\u00e4 <code>{{ $errors-&gt;first('title') }}<\/code>. Sama logiikka, jota sovellimme kentt\u00e4\u00e4n &#8217;body&#8217;. Katso alla olevaa t\u00e4m\u00e4n tyyppist\u00e4 kuvakaappausta.<\/p>\n<p>Toivomme, ett\u00e4 ymm\u00e4rr\u00e4t, miten Laravel-validointia k\u00e4ytet\u00e4\u00e4n sovelluksessasi. Jaa ajatuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/sahkopostin-lahettaminen-gmail-smtp-palvelimen-kautta-laravelissa\/\" title=\"S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa\">S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-asentaa-ja-kayttaa-ckeditoria-laravelissa\/\" title=\"Kuinka asentaa ja k\u00e4ytt\u00e4\u00e4 CKEditoria Laravelissa\">Kuinka asentaa ja k\u00e4ytt\u00e4\u00e4 CKEditoria Laravelissa<\/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>Haluatko soveltaa Laravel-validointia hakemuksessasi? T\u00e4ss\u00e4 artikkelissa tutkitaan, miten palvelinpuolen Laravel-vahvistusta sovelletaan ja miten virheilmoitukset n\u00e4ytet\u00e4\u00e4n n\u00e4kym\u00e4tiedostossa.<\/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-23768","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\/23768","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=23768"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23768\/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=23768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=23768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=23768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}