{"id":313,"date":"2015-08-07T13:18:20","date_gmt":"2015-08-07T16:18:20","guid":{"rendered":"http:\/\/www.henriquereis.com\/?p=313"},"modified":"2015-08-08T07:35:58","modified_gmt":"2015-08-08T10:35:58","slug":"laravel-validation-como-validar-pelo-form-request-uma-array-de-dados","status":"publish","type":"post","link":"https:\/\/henriquereis.com\/blog\/laravel-validation-como-validar-pelo-form-request-uma-array-de-dados\/","title":{"rendered":"Laravel: Validation->Como validar pelo form request uma array de dados"},"content":{"rendered":"<p>Voc\u00ea j\u00e1 deparou com a necessidade de validar uma array de informa\u00e7\u00f5es?<\/p>\n<p>Imagina o cen\u00e1rio:<\/p>\n<p>Cliente tem v\u00e1rias refer\u00eancias comerciais, e voc\u00ea precisa validar cada uma, mas tamb\u00e9m estas refer\u00eancias n\u00e3o s\u00e3o obrigat\u00f3rias.<\/p>\n<p>Considerando que voc\u00ea est\u00e1 usando o formrequest, vou deixar um exemplo aqui, para o m\u00e9todo rules():<\/p>\n<p><code><br \/>\npublic function rules()<br \/>\n{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;$input = parent::all();<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* verifica se referencias foi enviado<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* caso contr\u00e1rio n\u00e3o valida nada<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* ou<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* voc\u00ea pode definir a obrigatoriedade colocando<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* return ['referencias' => 'required'];<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;if (!isset($input['referencias'])) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return [];<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* verifica se referencias \u00e9 uma array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* caso contr\u00e1rio pedi para enviar como array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;if (!is_array($input['referencias'])) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ['referencias' => 'array'];<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* pega as rules padr\u00e3o<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* @var array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;$rules = [<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'nome' => 'required|min:2|max:30',<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'telefone' => 'required|integer|min:10|max:11'<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;]<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* pega as refer\u00eancias comerciais informadas<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* @var array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;$referencias = $input['referencias'];<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* varre a array de refer\u00eancias e verifica se todos os campos<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* de \"rules\" foram informados<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;* @var array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;$newRules = array();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;foreach ($referencias as $keyRefe => $referencia) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* se for informado um id<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* verifica se ele existe na tabela de refer\u00eancias comerciais<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (isset($referencia['id'])) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newRules['referencias.'.$keyRefe.'.id'] = 'exists:referencias_comerciais,id';<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* varre rules para verificar as keys e<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* o tipo de valida\u00e7\u00e3o configurada, e adiciona nas novas rules<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* @var array<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach ($rules as $key => $value) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newRules['referencias.'.$keyRefe.'.'.$key] = $value;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;return $newRules;<br \/>\n}<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea j\u00e1 deparou com a necessidade de validar uma array de informa\u00e7\u00f5es? Imagina o cen\u00e1rio: Cliente tem v\u00e1rias refer\u00eancias comerciais, e voc\u00ea precisa validar cada uma, mas tamb\u00e9m estas refer\u00eancias n\u00e3o s\u00e3o obrigat\u00f3rias. Considerando que voc\u00ea est\u00e1 usando o formrequest, vou deixar um exemplo aqui, para o m\u00e9todo rules(): public function rules() { &nbsp;&nbsp;&nbsp;&nbsp;$input = &hellip; <a href=\"https:\/\/henriquereis.com\/blog\/laravel-validation-como-validar-pelo-form-request-uma-array-de-dados\/\" class=\"more-link\">Continue lendo <span class=\"screen-reader-text\">Laravel: Validation->Como validar pelo form request uma array de dados<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/posts\/313"}],"collection":[{"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/comments?post=313"}],"version-history":[{"count":12,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/posts\/313\/revisions"}],"predecessor-version":[{"id":325,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/posts\/313\/revisions\/325"}],"wp:attachment":[{"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/media?parent=313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/categories?post=313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/henriquereis.com\/blog\/wp-json\/wp\/v2\/tags?post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}