From 85e043a944354ca3949448beaf147bce51e111a7 Mon Sep 17 00:00:00 2001 From: Derek MacDonald Date: Tue, 1 Nov 2016 13:27:09 -0400 Subject: [PATCH] Support 0-indexed arrays for >= Laravel 5.2 validation wildcard rules e.g., * ['items.*.name' => 'required'] will validate DOM selector $('[name="items\\[\\]\\[name\\]"]') for name="items[][name]" * ['item_name.*'] will validate DOM selector $('[name="item_name\\[\\]"]') for name="items_name[]" Laravel 5.2's Validator::make() immediately strips wildcard rules so they must be tracked separately in the DelegatedValidator class. Unfortunately named associative array keys are not supported in JavaScript as: * jQuery Validation plugin requires exact form name="" attribute values when defining rules and custom messages. * Best guess attempts to apply rules to name="" attributes on the page are made redundant by dynamically-added table rows that are the typical use case of wildcard rules. * e.g., For PHP rule 'items.*.name', this jQuery selector could guess a named key : $('[name^="items\\["][name$="\\]\\[name\\]"]').map(function (i, el) { return el.name; }); * This could obviously return false-positive DOM nodes to include in form validation. e.g., name="[items][][nested][name]" * New DOM ,