{"id":27234,"date":"2021-05-05T14:42:00","date_gmt":"2021-05-05T11:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27234"},"modified":"2021-10-18T03:49:57","modified_gmt":"2021-10-18T00:49:57","slug":"przewodnik-dla-poczatkujacych-dotyczacy-walidacji-laravela","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/przewodnik-dla-poczatkujacych-dotyczacy-walidacji-laravela\/","title":{"rendered":"Przewodnik dla pocz\u0105tkuj\u0105cych dotycz\u0105cy walidacji Laravela"},"content":{"rendered":"<p>Kiedy budujemy stron\u0119 internetow\u0105 w Laravel, musimy wiedzie\u0107 o walidacji Laravel. <a href=\"https:\/\/laravel.com\/docs\/5.6\/validation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel<\/a> zapewnia inny spos\u00f3b sprawdzania poprawno\u015bci przychodz\u0105cych danych. W tym artykule przyjrzymy si\u0119 podstawom walidacji Laravela.<\/p>\n<p>Buduj\u0105c aplikacj\u0119, powinni\u015bmy bezb\u0142\u0119dnie stosowa\u0107 walidacje po stronie klienta i serwera. Dzi\u0119ki temu mo\u017cemy chroni\u0107 nasz\u0105 aplikacj\u0119 przed niepotrzebnymi danymi. W efekcie zaoszcz\u0119dzi nam to du\u017co czasu na usuwanie danych o marnotrawstwie z aplikacji.<\/p>\n<p>Powiedziawszy to, przyjrzyjmy si\u0119, jak zastosowa\u0107 walidacj\u0119 Laravel w swojej aplikacji.<\/p>\n<p>W naszym samouczku bierzemy przyk\u0142adowy formularz, kt\u00f3ry ma 2 pola tytu\u0142 i opis. Zastosujemy walidacj\u0119, a je\u015bli walidacja si\u0119 nie powiedzie, zostanie ona wy\u015bwietlona w naszym widoku.<\/p>\n<h3>Walidacja Laravela<\/h3>\n<p>Aby rozpocz\u0105\u0107, musimy do\u0142\u0105czy\u0107 poni\u017csze o\u015bwiadczenie do naszego pliku kontrolera.<\/p>\n<p>Umie\u015b\u0107 to o\u015bwiadczenie przed uruchomieniem kontrolera, jak poni\u017cej.<\/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>Zanim napiszesz w\u0142a\u015bciwy kod walidacyjny, przejd\u017amy do pliku widoku. Tworzymy prosty formularz z 2 polami tytu\u0142u i opisu.<\/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>Gdy prze\u015blemy formularz, wywo\u0142a on <code>store()<\/code>metod\u0119 naszego kontrolera. W twoim przypadku mo\u017ce twoja metoda jest inna. Tak wi\u0119c w naszej metodzie napiszemy kod walidacji w nast\u0119puj\u0105cy spos\u00f3b.<\/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>Mo\u017cna zauwa\u017cy\u0107, \u017ce przekazali\u015bmy dwa klucze \u201etytu\u0142&quot; \u200b\u200bi \u201ecia\u0142o&#8221;. To s\u0105 nazwy naszych element\u00f3w formularza. Tutaj Laravel sprawdza, czy oba pola nie s\u0105 puste, a pola tytu\u0142u nie przekraczaj\u0105 255 znak\u00f3w.<\/p>\n<p>Je\u015bli kt\u00f3rakolwiek z walidacji nie powiedzie si\u0119, u\u017cytkownik przekieruje na stron\u0119, kt\u00f3r\u0105 przekazali\u015bmy do metody redirect().<\/p>\n<h3>Wy\u015bwietl komunikaty o b\u0142\u0119dach w widoku<\/h3>\n<p>Zastosowali\u015bmy walidacj\u0119 po stronie serwera. Przyjrzyjmy si\u0119 teraz, jak wy\u015bwietla\u0107 komunikaty o b\u0142\u0119dach.<\/p>\n<p>Powiedzmy, \u017ce w naszym przypadku walidacja nie powiod\u0142a si\u0119 i teraz musimy wy\u015bwietli\u0107 komunikaty o b\u0142\u0119dach w naszym formularzu. Istniej\u0105 2 sposoby wy\u015bwietlania b\u0142\u0119d\u00f3w w widokach Laravel. Po pierwsze, mo\u017cemy wy\u015bwietli\u0107 wszystkie komunikaty o b\u0142\u0119dach razem na g\u00f3rze formularza. Drugim sposobem jest wy\u015bwietlenie go obok ka\u017cdego pola, w kt\u00f3rym wyst\u0119puje b\u0142\u0105d.<\/p>\n<p>Aby wy\u015bwietli\u0107 komunikat o b\u0142\u0119dzie u g\u00f3ry formularza, dodaj poni\u017cszy kod nad tagiem formularza.<\/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>Ten kod wy\u015bwietli komunikat o b\u0142\u0119dzie, jak pokazano na poni\u017cszym zrzucie ekranu:<\/p>\n<p>W drugim sposobie, aby wydrukowa\u0107 komunikat o b\u0142\u0119dzie po ka\u017cdym polu. W takim przypadku nasz kod wygl\u0105da nast\u0119puj\u0105co:<\/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>Zauwa\u017c, \u017ce u\u017cywamy <code>@if ($errors-&gt;has('title'))<\/code>do sprawdzania, czy pole \u201etytu\u0142&#8221; \u200b\u200bma b\u0142\u0105d walidacji. Je\u015bli to pole zawiera b\u0142\u0105d, wypisujemy go za pomoc\u0105 <code>{{ $errors-&gt;first('title') }}<\/code>. T\u0119 sam\u0105 logik\u0119 zastosowali\u015bmy dla pola \u201ecia\u0142o&#8221;. Sp\u00f3jrz na poni\u017cszy zrzut ekranu tego typu.<\/p>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz, jak zastosowa\u0107 walidacj\u0119 Laravel w swojej aplikacji. Podziel si\u0119 swoimi przemy\u015bleniami w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/wysylanie-wiadomosci-e-mail-przez-serwer-smtp-gmaila-w-laravel\/\" title=\"Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel\">Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-zainstalowac-i-uzywac-ckeditor-w-laravel\/\" title=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\">Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w 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>Czy chcesz zastosowa\u0107 walidacj\u0119 Laravel w swojej aplikacji? W tym artykule dowiemy si\u0119, jak zastosowa\u0107 walidacj\u0119 Laravel po stronie serwera i wy\u015bwietli\u0107 komunikaty o b\u0142\u0119dach w pliku widoku.<\/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-27234","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\/27234","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=27234"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27234\/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=27234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}