{"id":59374,"date":"2023-05-09T10:57:10","date_gmt":"2023-05-09T13:57:10","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=59374&#038;preview=true&#038;preview_id=59374"},"modified":"2023-10-04T07:50:30","modified_gmt":"2023-10-04T10:50:30","slug":"validacao-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/","title":{"rendered":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa"},"content":{"rendered":"<p>Agora, mais do que nunca, \u00e9 fundamental que os dados em seus aplicativos sejam v\u00e1lidos e precisos, e cumpram todos os requisitos do sistema. Isso atende \u00e0 necessidade de manter a consist\u00eancia dos dados e de evitar vulnerabilidades de seguran\u00e7a.<\/p>\n<p>O <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-laravel\/\">Laravel<\/a> torna a valida\u00e7\u00e3o de dados f\u00e1cil e intuitiva. Ele segue uma arquitetura MVC (<a href=\"https:\/\/kinsta.com\/pt\/blog\/frameworks-php-populares\/\">Model View Controller<\/a>) e requer apenas conhecimento geral de PHP e conceitos de programa\u00e7\u00e3o orientada a objetos (OOP). Al\u00e9m disso, o Laravel oferece v\u00e1rios m\u00e9todos para validar os dados recebidos.<\/p>\n<p>Explore algumas dessas abordagens e como aplicar regras de valida\u00e7\u00e3o ao seu conjunto de dados.<\/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>Valida\u00e7\u00e3o de dados facilitada no Laravel<\/h2>\n<p>O Laravel fornece v\u00e1rias regras de valida\u00e7\u00e3o prontas para uso quando os usu\u00e1rios do seu aplicativo enviam dados por meio de formul\u00e1rios. Voc\u00ea pode marcar os campos de entrada como obrigat\u00f3rios, definir um comprimento m\u00ednimo ou m\u00e1ximo e exigir entradas exclusivas (n\u00e3o duplicadas) e endere\u00e7os de e-mail v\u00e1lidos. O validador do Laravel verifica se a entrada satisfaz essas regras ou quaisquer outras que voc\u00ea especificar.<\/p>\n<p>Essas <a href=\"https:\/\/laravel.com\/docs\/9.x\/validation#available-validation-rules\" target=\"_blank\" rel=\"noopener noreferrer\">regras de valida\u00e7\u00e3o do Laravel<\/a> incluem:<\/p>\n<ul>\n<li><code>required<\/code> &#8211; Os dados do campo n\u00e3o podem ser nulos ou vazios.<\/li>\n<li><code>array <\/code> &#8211; Os dados do campo devem ser um array PHP.<\/li>\n<li><code>bail<\/code> &#8211; A regra de valida\u00e7\u00e3o para de ser executada depois de encontrar sua primeira falha de valida\u00e7\u00e3o.<\/li>\n<li><code>email<\/code> &#8211; O dado no campo deve ser um endere\u00e7o de e-mail v\u00e1lido.<\/li>\n<li><code>unique<\/code> &#8211; Os dados no campo n\u00e3o podem ter duplicatas na tabela do banco de dados.<\/li>\n<\/ul>\n<p>Todos os m\u00e9todos de valida\u00e7\u00e3o t\u00eam pr\u00f3s e contras, mas a variedade deles permite que voc\u00ea escolha a melhor abordagem para suas necessidades. Dependendo do m\u00e9todo que voc\u00ea escolher, a valida\u00e7\u00e3o do Laravel pode ocorrer de v\u00e1rias maneiras, com mensagens de erro manuais ou autom\u00e1ticas.<\/p>\n<p>O m\u00e9todo mais comum \u00e9 code&gt;validate, usado para <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-uma-solicitacao-http\/\">solicita\u00e7\u00f5es HTTP<\/a> de entrada. Esse m\u00e9todo \u00e9 encadeado aos dados da solicita\u00e7\u00e3o, executando as regras de valida\u00e7\u00e3o. Voc\u00ea pode separar as regras de cada campo com v\u00edrgulas, como aparece no exemplo abaixo.<\/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>Aqui, <code>email<\/code> \u00e9 uma entrada obrigat\u00f3ria, o que significa que n\u00e3o pode ser nula. Al\u00e9m disso, ele deve ser exclusivo na tabela do banco de dados <code>users<\/code>, garantindo que o mesmo endere\u00e7o de e-mail n\u00e3o seja registrado duas vezes. A \u00faltima regra determina tamb\u00e9m que o endere\u00e7o de e-mail deve ser v\u00e1lido. Caso contr\u00e1rio, o processo de valida\u00e7\u00e3o ser\u00e1 interrompido. O campo name \u00e9 obrigat\u00f3rio, mas n\u00e3o tem outras regras.<\/p>\n<p>Se alguma regra de valida\u00e7\u00e3o do Laravel falhar, uma resposta ser\u00e1 gerada automaticamente.<\/p>\n\n<h2>No\u00e7\u00f5es b\u00e1sicas de valida\u00e7\u00e3o<\/h2>\n<p>Para entender melhor os m\u00e9todos de valida\u00e7\u00e3o, considere o exemplo a seguir. Voc\u00ea definir\u00e1 uma rota para o endpoint e criar\u00e1 um controlador para validar e processar os dados da solicita\u00e7\u00e3o.<\/p>\n<p>Primeiro, crie um endpoint simples, que permita aos usu\u00e1rios armazenar seus e-mails e <a href=\"https:\/\/kinsta.com\/pt\/blog\/gerenciadores-de-senhas\/\">senhas<\/a>.<\/p>\n<h3>Definindo a rota<\/h3>\n<p>As rotas do Laravel s\u00e3o definidas no arquivo <strong>routes\/web.php<\/strong> para um aplicativo web ou <strong>routes\/api.php<\/strong> para uma API. Para este exemplo, use <strong>api.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">use AppHttpControllersUserController;\n \nRoute::post('\/store', [UserController::class]);<\/code><\/pre>\n<h3>Criando o controlador<\/h3>\n<p>Execute este comando do Artisan para criar o controlador:<\/p>\n<pre><code class=\"language-php\">php artisan make:controller\n\nUserController<\/code><\/pre>\n<p>Esse comando cria um arquivo <strong>UserController.php<\/strong> no diret\u00f3rio <strong>app\/Http\/Controllers<\/strong>.<\/p>\n<p>Agora, defina um m\u00e9todo <code>store<\/code> para validar os dados que entram no endpoint do armazenamento antes de armazen\u00e1-los.<\/p>\n<p>Neste exemplo, voc\u00ea validar\u00e1 os seguintes campos usando estas regras:<\/p>\n<ul>\n<li><strong><span id=\"urn:enhancement-a3f3f8a2-5084-431e-9bc5-0c7c04e3caea\" class=\"textannotation selected\">email<\/span><\/strong>\u00a0 \u2014 Deve ser exclusivo, um e-mail v\u00e1lido, e ser obrigat\u00f3rio.<\/li>\n<li><strong><span id=\"urn:enhancement-a1985d20-e397-4236-bfcf-0758cfad9056\" class=\"textannotation selected\">password<\/span><\/strong>\u00a0\u2014 Deve ter um comprimento m\u00ednimo, confirma\u00e7\u00e3o de senha, e ser obrigat\u00f3ria.<\/li>\n<li><b>age <\/b>\u2014 Deve ser um n\u00famero, e ser obrigat\u00f3ria.<\/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>A regra <code>confirmed<\/code> permite que voc\u00ea exija um determinado campo duas vezes para verificar se os dados s\u00e3o precisos, como no caso de usu\u00e1rios que reinserem suas senhas durante o registro. Essa regra exige um campo chamado <code>password_confirmation<\/code>, cujos dados devem corresponder ao campo <strong>password<\/strong>.<\/p>\n<h3>Exibir mensagens de erro<\/h3>\n<p>Se os crit\u00e9rios de valida\u00e7\u00e3o forem atendidos, seu c\u00f3digo continuar\u00e1 sendo executado normalmente. Se a valida\u00e7\u00e3o falhar, uma exce\u00e7\u00e3o <code>IlluminateValidationValidationException<\/code> ser\u00e1 lan\u00e7ada e a resposta de erro apropriada ser\u00e1 retornada.<\/p>\n<p>O exemplo \u00e9 baseado em uma API que retorna uma resposta HTTP <code>422 Unprocessable Entity<\/code> no formato JSON. Para aplicativos da web, ele redirecionaria para a URL anterior para exibir a mensagem de erro, e os dados da solicita\u00e7\u00e3o seriam exibidos na sess\u00e3o.<\/p>\n<p>Voc\u00ea pode usar a vari\u00e1vel <code>$errors<\/code> em suas exibi\u00e7\u00f5es para mostrar os erros retornados:<\/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>Voc\u00ea tamb\u00e9m pode optar por exibir apenas o primeiro erro ou fazer um loop para exibir todos eles.<\/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>Repopular formul\u00e1rios<\/h3>\n<p>Repopular formul\u00e1rios evita que os usu\u00e1rios precisem digitar novamente todas as informa\u00e7\u00f5es, para que possam se concentrar na corre\u00e7\u00e3o dos erros. Por exemplo, na falha de um endere\u00e7o de e-mail, voc\u00ea pode preencher novamente o restante do formul\u00e1rio chamando o valor antigo do campo <code>name<\/code>.<\/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<\/code><\/pre>\n<p>Essa regra retornaria <code>null<\/code> se n\u00e3o houvesse nenhuma entrada anterior.<\/p>\n<h2>Valida\u00e7\u00e3o avan\u00e7ada<\/h2>\n<p>O Laravel oferece outro m\u00e9todo de escrever valida\u00e7\u00f5es, chamado solicita\u00e7\u00f5es de formul\u00e1rio. Uma solicita\u00e7\u00e3o de formul\u00e1rio \u00e9 uma classe de solicita\u00e7\u00e3o personalizada que organiza as valida\u00e7\u00f5es e limpa o seu controlador.<\/p>\n<p>Elas t\u00eam sua pr\u00f3pria l\u00f3gica de valida\u00e7\u00e3o e autoriza\u00e7\u00e3o, adequada para grandes volumes de entrada, e podem ser usadas para definir regras de valida\u00e7\u00e3o e personalizar mensagens de erro.<\/p>\n<p>Para criar uma solicita\u00e7\u00e3o de formul\u00e1rio, execute este comando do Artisan:<\/p>\n<pre><code class=\"language-php\">php artisan make:request StoreUserRequest<\/code><\/pre>\n<p>Esse comando cria um arquivo <strong>StoreUserRequest.php<\/strong> no diret\u00f3rio <strong>app\/Http\/Requests<\/strong> e cont\u00e9m dois m\u00e9todos padr\u00e3o:<\/p>\n<ul>\n<li><code>rules<\/code> retorna regras de valida\u00e7\u00e3o para os dados da solicita\u00e7\u00e3o.<\/li>\n<li><code>authorize<\/code> retorna um booleano para indicar se o usu\u00e1rio tem permiss\u00e3o para executar a a\u00e7\u00e3o solicitada.<\/li>\n<\/ul>\n<p>Converta o exemplo anterior para usar uma solicita\u00e7\u00e3o de formul\u00e1rio.<\/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>Para personalizar as mensagens de erro dessas regras, voc\u00ea pode substituir o m\u00e9todo messages na classe <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>Observa\u00e7\u00e3o:<\/strong> O nome dos dados e a regra de valida\u00e7\u00e3o s\u00e3o separados por um ponto (.) antes dos dados da mensagem.<\/p>\n<h2>Valida\u00e7\u00e3o personalizada<\/h2>\n<p>Para criar uma valida\u00e7\u00e3o personalizada, voc\u00ea pode usar um facade <code>Validator<\/code> em vez de <code>validate<\/code>. A inst\u00e2ncia do validador cont\u00e9m dois argumentos: os dados a ser validados e um array de regras de valida\u00e7\u00e3o. Esses dois argumentos s\u00e3o passados para o m\u00e9todo <code>::make<\/code> do facade validador, gerando uma nova inst\u00e2ncia de validador.<\/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>Se quiser adicionar um direto autom\u00e1tico, voc\u00ea pode executar o m\u00e9todo <code>validate<\/code> em uma inst\u00e2ncia de validador preexistente. Se a valida\u00e7\u00e3o falhar, uma solicita\u00e7\u00e3o XHR produzir\u00e1 uma resposta JSON com <code>422 Unprocessable Entity<\/code> como c\u00f3digo de status, ou o usu\u00e1rio ser\u00e1 redirecionado imediatamente.<\/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>Voc\u00ea tamb\u00e9m pode personalizar suas mensagens de erro passando um terceiro argumento chamado <code>messages<\/code> para <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>Observa\u00e7\u00e3o:<\/strong> O <code>:attribute<\/code> \u00e9 substitu\u00eddo pelo nome do campo em valida\u00e7\u00e3o.<\/p>\n\n<h2>Resumo<\/h2>\n<p>Validar os dados \u00e9 fundamental para manter seu conjunto de dados limpo, correto e completo. A valida\u00e7\u00e3o de dados permite que voc\u00ea elimine erros nos dados que poderiam corromper ou de alguma maneira impactar o seu projeto. A valida\u00e7\u00e3o se torna tanto mais importante quanto mais aumenta a escala do trabalho, com quantidades cada vez maiores de dados.<\/p>\n<p>O Laravel permite v\u00e1rias abordagens flex\u00edveis para garantir a integridade e a precis\u00e3o dos dados que passam pelo seu aplicativo. Voc\u00ea pode obter uma l\u00f3gica de valida\u00e7\u00e3o complicada com m\u00e9todos padr\u00e3o ou personaliz\u00e1veis, tornando sua base de c\u00f3digo bem estruturada e mais reutiliz\u00e1vel.<\/p>\n<p><a href=\"https:\/\/sevalla.com\/application-hosting\/\">Lance seus aplicativos Laravel mais rapidamente<\/a> com os servi\u00e7os de hospedagem de aplicativos da Kinsta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Agora, mais do que nunca, \u00e9 fundamental que os dados em seus aplicativos sejam v\u00e1lidos e precisos, e cumpram todos os requisitos do sistema. Isso atende &#8230;<\/p>\n","protected":false},"author":199,"featured_media":59375,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[984],"class_list":["post-59374","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>Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.\" \/>\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\/pt\/blog\/validacao-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa\" \/>\n<meta property=\"og:description\" content=\"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-09T13:57:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-04T10:50:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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=\"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa\",\"datePublished\":\"2023-05-09T13:57:10+00:00\",\"dateModified\":\"2023-10-04T10:50:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\"},\"wordCount\":1391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\",\"name\":\"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg\",\"datePublished\":\"2023-05-09T13:57:10+00:00\",\"dateModified\":\"2023-10-04T10:50:30+00:00\",\"description\":\"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"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\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa - Kinsta\u00ae","description":"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.","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\/pt\/blog\/validacao-laravel\/","og_locale":"pt_PT","og_type":"article","og_title":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa","og_description":"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.","og_url":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-05-09T13:57:10+00:00","article_modified_time":"2023-10-04T10:50:30+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tempo estimado de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa","datePublished":"2023-05-09T13:57:10+00:00","dateModified":"2023-10-04T10:50:30+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/"},"wordCount":1391,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/","url":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/","name":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","datePublished":"2023-05-09T13:57:10+00:00","dateModified":"2023-10-04T10:50:30+00:00","description":"A valida\u00e7\u00e3o do Laravel \u00e9 poderosa e conveniente, garantindo que os dados de seus aplicativos sejam v\u00e1lidos, precisos e atendam aos requisitos do sistema.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-validation.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/validacao-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/pt\/topicos\/laravel\/"},{"@type":"ListItem","position":3,"name":"Valida\u00e7\u00e3o de Dados no Laravel: Conveniente e Poderosa"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","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\/pt\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=59374"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59374\/revisions"}],"predecessor-version":[{"id":63780,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59374\/revisions\/63780"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59374\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/59375"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=59374"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=59374"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=59374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}