mergeArrayError($validator); parent::failedValidation($validator); } /** * 合并数组字段中元素的错误, 到数组字段的错误中 * * @param Validator $validator */ protected function mergeArrayError(Validator $validator) { if (!$this->mergeArrayError) { return; } $msgBag = $validator->errors(); foreach ($msgBag->messages() as $field => $errors) { // 取出第一个 . 号前面的, 作为字段名, // 例如 http_method.0 --> http_method // some.0.nested --> some $dotPos = strpos($field, '.'); if ($dotPos === false) { continue; } $targetField = substr($field, 0, $dotPos); foreach ($errors as $i) { $msgBag->add($targetField, $i); } } } }