{"id":5729,"date":"2018-09-18T08:01:31","date_gmt":"2018-09-18T11:01:31","guid":{"rendered":"https:\/\/blog.dialhost.com.br\/?p=5729"},"modified":"2019-09-30T17:56:00","modified_gmt":"2019-09-30T20:56:00","slug":"laravel-5-7-criando-form-validations","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/","title":{"rendered":"Laravel 5.7: Como criar &#8220;form validations&#8221; ao seu projeto web"},"content":{"rendered":"\n<p>Voltando a nossa S\u00e9rie, finalizamos o \u00faltimo artigo falando sobre algumas implementa\u00e7\u00f5es r\u00e1pidas do <a href=\"https:\/\/blog.dialhost.com.br\/laravel-controller\/\">Laravel Controller<\/a>. Assim, neste artigo, vamos focar na parte das valida\u00e7\u00f5es de dados em formul\u00e1rios  no Laravel 5.7.<\/p>\n\n\n\n<div id=\"toc_container\" class=\"have_bullets\"><p class=\"toc_title\">T&oacute;picos<\/p><ul class=\"toc_list\"><li><a href=\"#o-que-sao-as-validacoes-validations-no-laravel-57\">O que s\u00e3o as valida\u00e7\u00f5es (validations) no Laravel 5.7<\/a><\/li><li><a href=\"#criando-a-primeira-validacao\">Criando a primeira valida\u00e7\u00e3o<\/a><ul><li><a href=\"#a-primeira-e-mais-simples-e-voce-pode-incluir-no-proprio-controller-com-a-funcao-request-gtvalidate\">A primeira \u00e9 mais simples e voc\u00ea pode incluir no pr\u00f3prio Controller com a fun\u00e7\u00e3o $request-&gt;validate();<\/a><\/li><li><a href=\"#a-segunda-forma-e-usando-o-form-request-validation\">A segunda forma \u00e9 usando o Form Request Validation<\/a><\/li><\/ul><\/li><li><a href=\"#imprimindo-a-validacao-para-o-usuario\">Imprimindo a valida\u00e7\u00e3o para o usu\u00e1rio.<\/a><\/li><li><a href=\"#personalizando-as-mensagens-da-validacao\">Personalizando as mensagens da valida\u00e7\u00e3o<\/a><\/li><li><a href=\"#conclusao\">Conclus\u00e3o<\/a><\/li><\/ul><\/div>\n<h2><span id=\"o-que-sao-as-validacoes-validations-no-laravel-57\">O que s\u00e3o as valida\u00e7\u00f5es (validations) no Laravel 5.7<\/span><\/h2>\n\n\n\n<p>Primeiramente, o Laravel utiliza de diversas regras para conseguir validar qualquer dado que est\u00e1 entrando em uma aplica\u00e7\u00e3o. Estas regras s\u00e3o essenciais para que tenhamos mais seguran\u00e7a, controle, estabilidade e melhor usabilidade para o usu\u00e1rio. <\/p>\n\n\n\n<p>Para isto ele utiliza, por padr\u00e3o, a Classe <strong>&#8220;ValidateRequests&#8221;<\/strong>. Visto que ela traz  m\u00e9todos bem convenientes para validar requisi\u00e7\u00f5es HTTP ao nosso controller, bem como retornar, para o Controller, o sucesso ou o erro, de acordo com a regra programada.<\/p>\n\n\n\n<h2><span id=\"criando-a-primeira-validacao\">Criando a primeira valida\u00e7\u00e3o<\/span><\/h2>\n\n\n\n<p>Colocando a m\u00e3o na massa, vamos abrir o meu projeto com o Laravel 5.7. Neste exemplo, vou utilizar o <strong>&#8220;ProductsController&#8221;<\/strong> para configurar as valida\u00e7\u00f5es.<\/p>\n\n\n\n<p>Caso voc\u00ea n\u00e3o tenha acompanhado nossa s\u00e9rie, deixo o link para nosso artigo sobre <a href=\"https:\/\/blog.dialhost.com.br\/laravel-controller\/\">Controllers no Laravel<\/a>. Nele mostro sobre a cria\u00e7\u00e3o deste controller.<\/p>\n\n\n\n<p>Aqui, iniciaremos uma valida\u00e7\u00e3o simples dos dados que salvo na fun\u00e7\u00e3o <strong>store()<\/strong>. Aqui existem 2 maneiras:<\/p>\n\n\n\n<h3><span id=\"a-primeira-e-mais-simples-e-voce-pode-incluir-no-proprio-controller-com-a-funcao-request-gtvalidate\">A primeira \u00e9 mais simples e voc\u00ea pode incluir no pr\u00f3prio Controller com a fun\u00e7\u00e3o <strong>$request-&gt;validate();<\/strong><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">public function store(Request $request){    $validatedData = $request-&gt;validate([      'product_line_id' =&gt; 'required|integer',      'description' =&gt; 'required|alpha_num',      'expiration_time' =&gt; 'required|date',      'price' =&gt;['required',     'regex:\/^\\d+([.,]\\d{1,X})?$]\/'] ]);    $data = [      'product_line_id' =&gt; request('product_line_id'),      'description' =&gt; request('description'),      'expiration_time' =&gt; request('expiration_time'),      'price' =&gt; request('price') ];    Product::create($data);    return back();  } <\/pre>\n\n\n\n<p>Para a valida\u00e7\u00e3o precisava instanciar a <strong>&#8220;Request&#8221;<\/strong> da fun\u00e7\u00e3o utilizando o type-hint. \u00c9 atrav\u00e9s dela que faremos a valida\u00e7\u00e3o. A partir da\u00ed, apenas chamamos a fun\u00e7\u00e3o <strong>validate()<\/strong> passando o <strong>array<\/strong> com todos os campos que validaremos e suas respectivas regras.<\/p>\n\n\n\n<p>No caso, utilizamos as regras b\u00e1sicas de campo requerido e o tipo de dado que queremos que venha. No campo\u00a0<strong>&#8220;price&#8221;,<\/strong>\u00a0utilizei a regra de <strong>regex<\/strong> para validar o valor monet\u00e1rio. J\u00e1 que n\u00e3o encontramos nada pronto do Laravel, buscamos na internet por um <strong>regex<\/strong> que fizesse isso.<\/p>\n\n\n\n<p>Caso queira saber todas as valida\u00e7\u00f5es que o Laravel 5.7 permite, siga para o fim deste artigo.<\/p>\n\n\n\n<p>Como podem ver abaixo, \u00e9 um simples <strong>regex<\/strong> que valida a virgula dos centavos. Mas, para n\u00e3o ter problemas de compatibilidade com outra regra, o <strong>regex<\/strong> exige a utiliza\u00e7\u00e3o de um <strong>array<\/strong> ao inv\u00e9s da simples string de regras.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">'price' =&gt;[   'required',   'regex:\/^\\d+([.,]\\d{1,X})?$]\/' ] <\/pre>\n\n\n\n<h3><span id=\"a-segunda-forma-e-usando-o-form-request-validation\">A segunda forma \u00e9 usando o Form Request Validation<\/span><\/h3>\n\n\n\n<p>Ela \u00e9 relativamente mais complexa, mas tamb\u00e9m deixa suas valida\u00e7\u00f5es mais organizadas.<\/p>\n\n\n\n<p>Aqui, criaremos uma classe Request personalizada que ter\u00e1 estas mesmas regras. Para isto basta ir ao SSH do seu servidor. No caso, utilizamos nossa inst\u00e2ncia de <a href=\"https:\/\/www.dialhost.com.br\/hospedagem-cloud?utm_campaign=Artigo%20Blog&amp;utm_medium=Blog&amp;utm_src=DialHost\">hospedagem cloud<\/a> e digitar o comando abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">php artisan make:request StoreProduct<\/pre>\n\n\n\n<p>Agora, voc\u00ea ver\u00e1 na pasta Http do Laravel 5.7, uma pasta Requests com a classe StoreProduct.php.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">namespace App\\Http\\Requests; use Illuminate\\Foundation\\Http\\FormRequest; class StoreProduct extends FormRequest {   public function authorize() {       return true;   }   public function rules() {     return [       \/\/     ];   } } <\/pre>\n\n\n\n<p>Na fun\u00e7\u00e3o <strong>rules()<\/strong> adicionaremos as regras que haviamos colocado no Controller. O arquivo ficar\u00e1 assim ent\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> public function rules() {   return [     'product_line_id' =&gt; 'required|integer',     'description' =&gt; 'required',     'expiration_time' =&gt; 'required|integer',     'price' =&gt;['required','regex:\/^\\d+([.]\\d{1,2})?$\/']   ]; }<\/pre>\n\n\n\n<p>Com as regras definidas, basta fazer o\u00a0<em>type-hin<\/em>t \u00a0na fun\u00e7\u00e3o <strong>store()<\/strong> do Controller e tudo deve funcionar.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> \/\/ Adiciono a classe StoreProduct no come\u00e7o do arquivo use App\\Http\\Requests\\StoreProduct; ... \/\/ E ent\u00e3o fa\u00e7o o type-hint na fun\u00e7\u00e3o store() public function store(StoreProduct $request){   $data = [     'product_line_id' =&gt; request('product_line_id'),     'description' =&gt; request('description'),     'expiration_time' =&gt; request('expiration_time'),     'price' =&gt; request('price')   ]; ... <\/pre>\n\n\n\n<p>A partir da\u00ed, o Laravel j\u00e1 vai entender que a request que vir\u00e1 para esta fun\u00e7\u00e3o dever\u00e1 passar pela valida\u00e7\u00e3o do <strong>&#8220;StoreProduct&#8221;<\/strong>.<\/p>\n\n\n\n<h2><span id=\"imprimindo-a-validacao-para-o-usuario\">Imprimindo a valida\u00e7\u00e3o para o usu\u00e1rio.<\/span><\/h2>\n\n\n\n<p>Apenas com a configura\u00e7\u00e3o anterior, n\u00e3o conseguiremos ver se alguma valida\u00e7\u00e3o foi feita. Isto porque s\u00f3 veremos algum resultado imprimindo isto em uma view. <\/p>\n\n\n\n<p>Mais pra frente apresentaremos melhor sobre as Views. Mas, por hora, criamos a view products.blade.php para adicionar um produto e validar os dados.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> \u2026<br> @if($errors-&gt;any())<br>     @foreach($errors-&gt;all() as $error)      {{ $error }} @endforeach <br> @elseif(session()-&gt;has('success'))<br>       {{ session('success') }}<br> @endif<br> Adicionar um novo produto<br>     {{csrf_field()}} Selecione uma linha de produto<br> @foreach($product_lines as $product_line) {{$product_line-&gt;description}} @endforeach <br> Enviar <br> \u2026<\/pre>\n\n\n\n<p>Para relembrar, a view Products.blade.php foi vinculada a fun\u00e7\u00e3o index do <strong>&#8220;ProductsController&#8221;<\/strong> no <a rel=\"noopener noreferrer\" href=\"https:\/\/blog.dialhost.com.br\/laravel-controller\/\" target=\"_blank\">artigo anterior<\/a>. Agora, estamos efetivamente criando ele com o conte\u00fado acima.<\/p>\n\n\n\n<p>Antes de explicar o c\u00f3digo acima, vamos entender o fluxo do Form Request Validation no Laravel 5.7. Ao dar o type-hint do&nbsp;Form Request Validation na fun\u00e7\u00e3o do Controller, voc\u00ea est\u00e1 dizendo ao Laravel que esta valida\u00e7\u00e3o ser\u00e1 acionada antes de executar qualquer a\u00e7\u00e3o da fun\u00e7\u00e3o. Se os dados forem validados corretamente, o processo segue. Sen\u00e3o, o usu\u00e1rio \u00e9 redirecionado automaticamente para a rota anterior. Neste caso, mostrando a view <strong>&#8220;Products&#8221;<\/strong>.<\/p>\n\n\n\n<p>Agora voltando ao c\u00f3digo da View. Nas primeiras linhas, verificamos se existe alguma coisa na vari\u00e1vel <strong>$errors<\/strong>. (Vari\u00e1vel j\u00e1 implementada pelo Laravel 5.7).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$errors-&gt;any() <\/pre>\n\n\n\n<p>Se houver alguma coisa nele, fazemos a varredura de todos os erros e imprimimos na <strong>&lt;li>.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;div class=\"error\"&gt;   &lt;ul&gt;   @foreach($errors-&gt;all() as $error)     &lt;li&gt;{{ $error }}&lt;\/li&gt;   @endforeach   &lt;\/ul&gt; &lt;\/div&gt;<\/pre>\n\n\n\n<p>Se n\u00e3o houver nenhum erro, inserimos a mensagem de sucesso.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[html]@elseif(session()-&gt;has('success'))   &lt;div class=\"success\"&gt;       {{ session('success') }}   &lt;\/div&gt;   @endif [\/html] <\/pre>\n\n\n\n<h2><span id=\"personalizando-as-mensagens-da-validacao\">Personalizando as mensagens da valida\u00e7\u00e3o<span id=\"mce_4_start\" style=\"overflow: hidden; line-height: 0px;\"><\/span><\/span><\/h2>\n\n\n\n<p>Por fim, s\u00f3 precisamos editar mensagens personalizadas para os nossos erros. Para isto, adicionaremos a fun\u00e7\u00e3o <strong>messages()<\/strong> \u00e0 classe <strong>&#8220;StoreProducts&#8221;<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> public function messages() {   return [     'required' =&gt; 'O campo :attribute \u00e9 requerido',     'description.min' =&gt; 'O campo :attribute deve ter no m\u00ednimo 3 caracteres',     'expiration_time.min' =&gt; 'O campo :attribute deve ser a quantidade de dias',     'price.regex' =&gt; 'O campo :attribute deve conter um valor monet\u00e1rio. Ex.: 2.25',   ]; }<\/pre>\n\n\n\n<p>Como podemos ver no c\u00f3digo acima, a fun\u00e7\u00e3o <strong>messages()<\/strong> apenas retorna um <strong>array<\/strong> com as mensagens espec\u00edficas de cada regra. Para definir uma mensagem geral \u00e0 uma regra, apenas utilizamos a regra como no exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ Defini que todo campo requerido dever\u00e1 ter esta mensagem.  \/\/ A tag ':attribute' ser\u00e1 substitu\u00edda pelo nome do campo em quest\u00e3o. 'required' =&gt; 'O campo :attribute \u00e9 requerido',<\/pre>\n\n\n\n<p>Para adicionar uma mensagem espec\u00edfica ao campo em quest\u00e3o, basta coloca o <strong>nome_do_campo.nome_da_regra.<\/strong><\/p>\n\n\n\n<h2><span id=\"conclusao\">Conclus\u00e3o<\/span><\/h2>\n\n\n\n<p>Agora que conseguimos fazer as valida\u00e7\u00f5es dos dados inseridos em nosso formul\u00e1rio, garantimos a integridade do banco e melhoramos a intera\u00e7\u00e3o do usu\u00e1rio com cada tela. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, vou focar na parte das valida\u00e7\u00f5es de dados em formul\u00e1rios. Aproveitei tamb\u00e9m para atualizar tudo para o Laravel 5.7. \t\t\t<\/p>\n","protected":false},"author":1,"featured_media":8730,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23,24,12],"tags":[138,139,167,271],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel 5.7: Como criar &quot;form validations&quot; ao seu projeto web<\/title>\n<meta name=\"description\" content=\"Como adicionar form validations aos seus controllers no Laravel 5.7? Neste artigo voc\u00ea aprender\u00e1 como criar Requests para validar seus formul\u00e1rios.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel 5.7: Como criar &quot;form validations&quot; ao seu projeto web\" \/>\n<meta property=\"og:description\" content=\"Como adicionar form validations aos seus controllers no Laravel 5.7? Neste artigo voc\u00ea aprender\u00e1 como criar Requests para validar seus formul\u00e1rios.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/laravel-5-7-criando-form-validations\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-18T11:01:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-30T20:56:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2018\/09\/validation-laravel.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2018\/09\/validation-laravel.jpg\",\"width\":1024,\"height\":576,\"caption\":\"laravel-valida\\u00e7\\u00e3o\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/\",\"name\":\"Laravel 5.7: Como criar \\\"form validations\\\" ao seu projeto web\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#primaryimage\"},\"datePublished\":\"2018-09-18T11:01:31+00:00\",\"dateModified\":\"2019-09-30T20:56:00+00:00\",\"description\":\"Como adicionar form validations aos seus controllers no Laravel 5.7? Neste artigo voc\\u00ea aprender\\u00e1 como criar Requests para validar seus formul\\u00e1rios.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/laravel-5-7-criando-form-validations\/\",\"url\":\"\/blog\/laravel-5-7-criando-form-validations\/\",\"name\":\"Laravel 5.7: Como criar &#8220;form validations&#8221; ao seu projeto web\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"Laravel 5.7: Como criar &#8220;form validations&#8221; ao seu projeto web\",\"datePublished\":\"2018-09-18T11:01:31+00:00\",\"dateModified\":\"2019-09-30T20:56:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#primaryimage\"},\"keywords\":\"laravel,laravel 5.7,php,S\\u00e9rie Laravel\",\"articleSection\":\"Laravel,PHP,Tecnologias\",\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/laravel-5-7-criando-form-validations\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5729"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=5729"}],"version-history":[{"count":1,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5729\/revisions"}],"predecessor-version":[{"id":10092,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/5729\/revisions\/10092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/8730"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=5729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}