{"id":50577,"date":"2023-05-09T14:52:40","date_gmt":"2023-05-09T13:52:40","guid":{"rendered":"https:\/\/kinsta.com\/dk\/?p=50577&#038;preview=true&#038;preview_id=50577"},"modified":"2023-08-24T10:15:57","modified_gmt":"2023-08-24T09:15:57","slug":"laravel-validering","status":"publish","type":"post","link":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/","title":{"rendered":"Datavalidering i Laravel: Praktisk og kraftfuld"},"content":{"rendered":"<p>Nu er det mere end nogensinde f\u00f8r afg\u00f8rende, at dataene i dine applikationer er gyldige, n\u00f8jagtige og opfylder alle systemkrav. Det er n\u00f8dvendigt at opretholde datakonsistens og undg\u00e5 sikkerhedss\u00e5rbarheder.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/blog\/what-is-laravel\/\">Laravel<\/a> g\u00f8r datavalidering let og intuitiv. Det f\u00f8lger en <a href=\"https:\/\/kinsta.com\/dk\/blog\/php-framework\/#model-view-controller-architecture\">model view controller-arkitektur<\/a> (MVC) og kr\u00e6ver kun generel viden om PHP og objektorienterede programmeringsbegreber (OOP). Desuden tilbyder Laravel flere metoder til validering af indg\u00e5ende data.<\/p>\n<p>Udforsk nogle af disse metoder, og hvordan du anvender valideringsregler p\u00e5 dit datas\u00e6t.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Datavalidering gjort let i Laravel<\/h2>\n<p>Laravel indeholder flere f\u00e6rdige valideringsregler til brug, n\u00e5r brugerne af din applikation indsender data via formularer. Du kan markere inputfelter som obligatoriske, angive en minimums- eller maksimumsl\u00e6ngde og kr\u00e6ve unikke (ikke-duplikerede) indtastninger og gyldige e-mailadresser. Laravel-valideringsv\u00e6rkt\u00f8jet kontrollerer, om input opfylder disse regler eller andre regler, du angiver.<\/p>\n<p>Disse <a href=\"https:\/\/laravel.com\/docs\/9.x\/validation#available-validation-rules\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel-valideringsregler<\/a> omfatter:<\/p>\n<ul>\n<li><code>required<\/code> &#8211; Feltdataene m\u00e5 ikke v\u00e6re nul eller tomme.<\/li>\n<li><code>array <\/code> &#8211; Feltdataene skal v\u00e6re et PHP-array.<\/li>\n<li><code>bail<\/code> &#8211; Valideringsreglen stopper med at blive udf\u00f8rt, n\u00e5r den st\u00f8der p\u00e5 den f\u00f8rste fejl ved valideringen.<\/li>\n<li><code>email<\/code> &#8211; Feltdataene skal v\u00e6re en gyldig e-mailadresse.<\/li>\n<li><code>unique<\/code> &#8211; Feltdataene m\u00e5 ikke have dubletter i databasetabellen.<\/li>\n<\/ul>\n<p>Alle valideringsmetoder har fordele og ulemper, men deres forskellige muligheder g\u00f8r det muligt for dig at v\u00e6lge den bedste metode til dine behov. Afh\u00e6ngigt af den valgte metode kan Laravel-validering forekomme p\u00e5 flere m\u00e5der, med manuelle eller automatiske fejlmeddelelser.<\/p>\n<p>Den mest almindelige metode er code&gt;validate, der bruges til indg\u00e5ende <a href=\"https:\/\/kinsta.com\/blog\/what-is-an-http-request\/\">HTTP-foresp\u00f8rgsler<\/a>. Denne metode er k\u00e6det til anmodningsdataene og udf\u00f8rer valideringsreglerne. Du kan adskille reglerne for hvert felt med kommaer, som det ses i eksemplet nedenfor.<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\n \npublic function store (Request $request){\n  $validated = $request-&gt;validate([\n        'email' =&gt; ['required, unique:users, email, bail'],\n        'name' =&gt; ['required'],\n    ]);\n\n}<\/code><\/pre>\n<p>Her er <code>email<\/code> et obligatorisk input, hvilket betyder, at det ikke kan v\u00e6re nul. Desuden skal det v\u00e6re unikt i databasetabellen <code>users<\/code>, hvilket sikrer, at den samme e-mailadresse ikke registreres to gange. Den sidste regel foreskriver, at e-mail-adressen ogs\u00e5 skal v\u00e6re gyldig. Ellers oph\u00f8rer valideringsprocessen. Navnefeltet er p\u00e5kr\u00e6vet, men har ingen andre regler.<\/p>\n<p>Hvis en Laravel-valideringsregel fejler, genereres der automatisk et svar.<\/p>\n\n<h2>Grundl\u00e6ggende om validering<\/h2>\n<p>For bedre at forst\u00e5 valideringsmetoderne kan du se p\u00e5 f\u00f8lgende eksempel. Du definerer en rute for slutpunktet og opretter en controller til at validere og behandle anmodningsdataene.<\/p>\n<p>F\u00f8rst skal du oprette et simpelt endpoint, der giver brugerne mulighed for at gemme deres e-mail og <a href=\"https:\/\/kinsta.com\/dk\/blog\/password-administrator\/\">passwords<\/a>.<\/p>\n<h3>Definer ruten<\/h3>\n<p>Laravel-ruter defineres i filen <strong>routes\/web.php<\/strong> for en webapplikation eller <strong>routes\/api.php<\/strong> for en API. I dette eksempel skal du bruge <strong>api.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">use AppHttpControllersUserController;\n \nRoute::post('\/store', [UserController::class]);<\/code><\/pre>\n<h3>Opret controlleren<\/h3>\n<p>K\u00f8r denne Artisan-kommando for at oprette controlleren:<\/p>\n<pre><code class=\"language-php\">php artisan make:controller\n\nUserController<\/code><\/pre>\n<p>Denne kommando opretter en <strong>UserController.php<\/strong>-fil i mappen <strong>app\/Http\/Controllers<\/strong>.<\/p>\n<p>Definer nu en <code>store<\/code> -metode til at validere data, der kommer ind i butiks-endpointed f\u00f8r de gemmes.<\/p>\n<p>Dette eksempel vil validere f\u00f8lgende felter ved hj\u00e6lp af disse regler:<\/p>\n<ul>\n<li><strong>email<\/strong> &#8211; Skal v\u00e6re unik, en gyldig e-mail og skal v\u00e6re p\u00e5kr\u00e6vet<\/li>\n<li><strong>password<\/strong> &#8211; Skal have en minimumsl\u00e6ngde, passwordbekr\u00e6ftelse og skal v\u00e6re p\u00e5kr\u00e6vet<\/li>\n<li><strong>age<\/strong> &#8211; Skal v\u00e6re et tal og skal v\u00e6re p\u00e5kr\u00e6vet<\/li>\n<\/ul>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\nuse IlluminateHttpRequest;\nclass UserController extends Controller\n{\n    \/**\n     * Store new user details.\n     *\n     *\/\n    public function store(Request $request){\n        $validated = $request-&gt;validate([\n            'email' =&gt; 'required|unique:users|email',\n            'age' =&gt; 'required|numeric',\n            'password' =&gt; 'required|min:7|confirmed'\n        ]);\n        \/\/ After user data is validated, logic to store the data\n    }\n\n}<\/code><\/pre>\n<p>Med reglen <code>confirmed<\/code> kan du kr\u00e6ve et bestemt felt to gange for at kontrollere, at dataene er korrekte, f.eks. n\u00e5r brugere indtaster deres passwords igen under registreringen. Denne regel kr\u00e6ver et felt kaldet <code>password_confirmation<\/code>, hvis data skal stemme overens med <strong>passwordfeltet<\/strong>.<\/p>\n<h3>Vis fejlmeddelelser<\/h3>\n<p>Hvis valideringskriterierne er opfyldt, forts\u00e6tter din kode med at k\u00f8re normalt. Hvis valideringen mislykkes, udl\u00f8ses en <code>IlluminateValidationValidationException<\/code> -undtagelse, og det relevante fejlsvar returneres.<\/p>\n<p>Eksemplet er baseret p\u00e5 et API, som returnerer et <code>422 Unprocessable Entity<\/code> HTTP-svar i JSON-format. For webapplikationer ville det omdirigere til den tidligere URL for at vise fejlmeddelelsen, og anmodningsdataene ville blive flashet til sessionen.<\/p>\n<p>Du kan bruge variablen <code>$errors<\/code> i dine visninger til at vise returnerede fejl:<\/p>\n<pre><code class=\"language-php\">@if ($errors-&gt;any())\n    &lt;div class=\"alert alert-danger\"&gt;\n        &lt;ul&gt;\n            @foreach ($errors-&gt;all() as $error)\n                &lt;li&gt;{{ $error }}&lt;\/li&gt;\n            @endforeach\n        &lt;\/ul&gt;\n    &lt;\/div&gt;\n@endif<\/code><\/pre>\n<p>Du kan ogs\u00e5 v\u00e6lge kun at f\u00e5 vist den f\u00f8rste fejl eller at genneml\u00f8be en loop for at f\u00e5 vist dem alle.<\/p>\n<pre><code class=\"language-php\">\/\/ Fetch all errors\n$errors-&gt;all()\n\n\/\/ Fetch only the first error\n$errors-&gt;first()<\/code><\/pre>\n<h3>Genopfyldning af formularer<\/h3>\n<p>Ved at genopfylde formularer slipper brugerne for at indtaste oplysninger igen, s\u00e5 de kan fokusere p\u00e5 at rette fejlen. I eksemplet med en e-mailadresse, der ikke blev udfyldt, kan du genopfylde resten af formularen ved at kalde den gamle v\u00e6rdi for <code>name<\/code> -feltet.<\/p>\n<pre><code class=\"language-php\">$name = $request-&gt; old('name')\n\n\/\/Blade helper\n&lt;input type=\"text\" name=\"name\" value=\"{{ old('name') }}\"&gt;\n\n<\/code><\/pre>\n<p>Denne regel ville returnere <code>null<\/code>, hvis der ikke var noget tidligere input.<\/p>\n<h2>Avanceret validering<\/h2>\n<p>Laravel tilbyder en anden metode til at skrive valideringer kaldet formularforesp\u00f8rgsler. En formularanmodning er en brugerdefineret anmodningsklasse, der organiserer valideringer og afvikler din controller.<\/p>\n<p>De har deres egen validerings- og autorisationslogik, der er egnet til store inputm\u00e6ngder, og kan bruges til at definere valideringsregler og tilpasse fejlmeddelelser.<\/p>\n<p>For at oprette en formularanmodning skal du k\u00f8re denne Artisan-kommando:<\/p>\n<pre><code class=\"language-php\">php artisan make:request StoreUserRequest<\/code><\/pre>\n<p>Denne kommando opretter en <strong>StoreUserRequest.php<\/strong>-fil i mappen <strong>app\/Http\/Requests<\/strong> og indeholder to standardmetoder:<\/p>\n<ul>\n<li><code>rules<\/code> returnerer valideringsregler for anmodningsdata.<\/li>\n<li><code>authorize<\/code> returnerer en boolean, der angiver, om brugeren har tilladelse til at udf\u00f8re den \u00f8nskede handling.<\/li>\n<\/ul>\n<p>Konverter det foreg\u00e5ende eksempel til at bruge en formularanmodning.<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpRequests;\nuse IlluminateFoundationHttpFormRequest;\nclass StoreUserRequest extends FormRequest\n{\n    \/**\n     * Determine if the user is authorized to make this request.\n     *\n     * @return bool\n     *\/\n    public function authorize()\n    {\n        \/\/ Add logic to check if the user is authorized to submit this data.\n        return true;\n    }\n    \/**\n     * Get the validation rules that apply to the request.\n     *\n     * @return array&lt;string, mixed&gt;\n     *\/\n    public function rules()\n    {\n        return [\n            'email' =&gt; 'required|unique:users|email',\n            'age' =&gt; 'required|numeric',\n            'password' =&gt; 'required|min:7|confirmed'\n        ];\n    }\n\n}<\/code><\/pre>\n<p>Hvis du vil tilpasse fejlmeddelelserne for disse regler, kan du tilsides\u00e6tte messages-metoden i klassen <code>FormRequest<\/code>.<\/p>\n<pre><code class=\"language-php\">\/**\n\n     * Get the error messages for the defined validation rules.\n     *\n     * @return array\n     *\/\n    public function messages()\n    {\n        return [\n            'email.required' =&gt; 'An email address is required',\n            'email.email' =&gt; 'The email address must be valid',\n            'password.confirmed'=&gt;'Re-type your password as \npassword_confirmation, passwords does not match'\n        ];\n\n    }<\/code><\/pre>\n<p><strong>Bem\u00e6rk:<\/strong> Datanavnet og valideringsreglen er adskilt af et punktum (.) f\u00f8r meddelelsesdataene.<\/p>\n<h2>Brugerdefineret validering<\/h2>\n<p>Hvis du vil oprette brugerdefineret validering, kan du bruge en <code>Validator<\/code> -facade i stedet for <code>validate<\/code>. Validatorinstansen indeholder to argumenter: de data, der skal valideres, og et array af valideringsregler. Disse to argumenter overf\u00f8res til metoden <code>::make<\/code> p\u00e5 validatorfacaden, hvorved der genereres en ny validatorinstans.<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest; \n\npublic function store (Request $request){\n        $validator = Validator::make($request-&gt;all(),[\n            'email' =&gt; 'required|unique:users|email',\n            'age' =&gt; 'required|numeric',\n            'password' =&gt; 'required|min:7|confirmed'\n        ]);\n        if ($validator-&gt;fails()) {\n            \/\/ Return errors or redirect back with errors\n            return $validator-&gt;errors();\n        }\n \n        \/\/ Retrieve the validated input...\n        $validated = $validator-&gt;validated();\n        \/\/ Continue logic to store the data\n\n    }<\/code><\/pre>\n<p>Hvis du \u00f8nsker at tilf\u00f8je en automatisk direkte, kan du udf\u00f8re metoden <code>validate<\/code> p\u00e5 en allerede eksisterende validatorinstans. Hvis valideringen mislykkes, producerer en XHR-foresp\u00f8rgsel et JSON-svar med <code>422 Unprocessable Entity<\/code> som statuskode, eller brugeren omdirigeres straks.<\/p>\n<pre><code class=\"language-php\">$validator = Validator::make($request-&gt;all(),[\n'email' =&gt; 'required|unique:users|email',\n'password' =&gt; 'required|min:7|confirmed'\n])-&gt;validate();<\/code><\/pre>\n<p>Du kan ogs\u00e5 tilpasse dine fejlmeddelelser ved at sende et tredje argument kaldet <code>messages<\/code> til <code>Validate::make method<\/code>:<\/p>\n<pre><code class=\"language-php\">$validator = Validator::make($request-&gt;all(),[\n            'email' =&gt; 'required|unique:users|email',\n            'age' =&gt; 'required|numeric',\n            'password' =&gt; 'required|min:7|confirmed'\n        ], $messages = [\n            'required' =&gt; 'The :attribute field is required.',\n]);<\/code><\/pre>\n<p><strong>Bem\u00e6rk:<\/strong> <code>:attribute<\/code> erstattes med navnet p\u00e5 det felt, der skal valideres.<\/p>\n\n<h2>Opsummering<\/h2>\n<p>Datavalidering er afg\u00f8rende for at holde dit datas\u00e6t rent, korrekt og fuldst\u00e6ndigt. Datavalidering giver dig mulighed for at fjerne fejl i dine data, som potentielt kan \u00f8del\u00e6gge eller p\u00e5 anden m\u00e5de p\u00e5virke dit projekt. Validering bliver stadig vigtigere, n\u00e5r man arbejder i stor skala og med store datam\u00e6ngder.<\/p>\n<p>Laravel giver mulighed for mange fleksible tilgange til at sikre integriteten og n\u00f8jagtigheden af de data, der passerer gennem din applikation. Du kan opn\u00e5 kompliceret valideringslogik med standardmetoder og metoder, der kan tilpasses, hvilket g\u00f8r din kodebase velstruktureret og lettere genanvendelig.<\/p>\n<p><a href=\"https:\/\/sevalla.com\/application-hosting\/\">Send dine Laravel-apps hurtigere<\/a> med Kinsta&#8217;s applikationshosting-tjenester.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nu er det mere end nogensinde f\u00f8r afg\u00f8rende, at dataene i dine applikationer er gyldige, n\u00f8jagtige og opfylder alle systemkrav. Det er n\u00f8dvendigt at opretholde datakonsistens &#8230;<\/p>\n","protected":false},"author":199,"featured_media":50578,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[712],"class_list":["post-50577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Datavalidering i Laravel: Praktisk og kraftfuld- Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datavalidering i Laravel: Praktisk og kraftfuld\" \/>\n<meta property=\"og:description\" content=\"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-09T13:52:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-24T09:15:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_dk\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_dk\" \/>\n<meta name=\"twitter:label1\" content=\"Skrevet af\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimeret l\u00e6setid\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Datavalidering i Laravel: Praktisk og kraftfuld\",\"datePublished\":\"2023-05-09T13:52:40+00:00\",\"dateModified\":\"2023-08-24T09:15:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\"},\"wordCount\":1140,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\",\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\",\"url\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\",\"name\":\"Datavalidering i Laravel: Praktisk og kraftfuld- Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\",\"datePublished\":\"2023-05-09T13:52:40+00:00\",\"dateModified\":\"2023-08-24T09:15:57+00:00\",\"description\":\"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#breadcrumb\"},\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/dk\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/dk\/emner\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Datavalidering i Laravel: Praktisk og kraftfuld\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/dk\/#website\",\"url\":\"https:\/\/kinsta.com\/dk\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Hurtig, sikker, premium hostingl\u00f8sninger\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/dk\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/dk\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/dk\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/\",\"https:\/\/x.com\/kinsta_dk\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\/\/kinsta.com\/dk\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/dk\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Datavalidering i Laravel: Praktisk og kraftfuld- Kinsta\u00ae","description":"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/","og_locale":"da_DK","og_type":"article","og_title":"Datavalidering i Laravel: Praktisk og kraftfuld","og_description":"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.","og_url":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","article_published_time":"2023-05-09T13:52:40+00:00","article_modified_time":"2023-08-24T09:15:57+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.","twitter_image":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","twitter_creator":"@kinsta_dk","twitter_site":"@kinsta_dk","twitter_misc":{"Skrevet af":"Jeremy Holcombe","Estimeret l\u00e6setid":"7 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Datavalidering i Laravel: Praktisk og kraftfuld","datePublished":"2023-05-09T13:52:40+00:00","dateModified":"2023-08-24T09:15:57+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/"},"wordCount":1140,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/dk\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","inLanguage":"da-DK","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/","url":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/","name":"Datavalidering i Laravel: Praktisk og kraftfuld- Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/dk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","datePublished":"2023-05-09T13:52:40+00:00","dateModified":"2023-08-24T09:15:57+00:00","description":"Laravel-validering sikrer, at data i dine applikationer er gyldige, n\u00f8jagtige, opfylder alle systemkrav og er kraftfulde og praktiske.","breadcrumb":{"@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#breadcrumb"},"inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#primaryimage","url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","contentUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/05\/laravel-validation.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/dk\/blog\/laravel-validering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/dk\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/dk\/emner\/laravel\/"},{"@type":"ListItem","position":3,"name":"Datavalidering i Laravel: Praktisk og kraftfuld"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/dk\/#website","url":"https:\/\/kinsta.com\/dk\/","name":"Kinsta\u00ae","description":"Hurtig, sikker, premium hostingl\u00f8sninger","publisher":{"@id":"https:\/\/kinsta.com\/dk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/dk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"da-DK"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/dk\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/dk\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/dk\/wp-content\/uploads\/sites\/12\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/dk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Danmark-122855885298660\/","https:\/\/x.com\/kinsta_dk","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/kinsta.com\/dk\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/dk\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/50577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/comments?post=50577"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/50577\/revisions"}],"predecessor-version":[{"id":50719,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/posts\/50577\/revisions\/50719"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/translations\/dk"},{"href":"https:\/\/kinsta.com\/dk\/wp-json\/kinsta\/v1\/posts\/50577\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/media\/50578"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/media?parent=50577"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/tags?post=50577"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/dk\/wp-json\/wp\/v2\/topic?post=50577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}