/** * Validate submission * @param JSONData $value * @param array $params * @return array * @throws AppValidatorException */ public function _validateSubmission($value, $params) { $selectInfo = $this->_getSelectInfo(); $result = array(); if ($params->get('mode') == self::VALIDATE_MODE_ANY) { for ($i = 0; $i <= $selectInfo['maxLevel']; $i++) { $result['list-' . $i] = $value->get('list-' . $i); } $resultCheck = array_filter($result); if (empty($resultCheck) && $params->get('required')) { throw new AppValidatorException('This field is required', AppValidator::ERROR_CODE_REQUIRED); } } else { $val = $value->flattenRecursive(); for ($i = 0; $i < count($val); $i++) { $result['list-' . $i] = $this->app->validator->create('string', array('required' => $params->get('required')))->clean($value->get('list-' . $i)); } } return $result; }