public function validate($validator, $values, $arguments = array()) { $values = $values + array('pc' => array(), 'mobile' => array(), 'invalid' => array()); $inputList = explode("\n", opToolkit::unifyEOLCharacter($values['mail_address'])); $inputList = array_unique(array_map('trim', $inputList)); foreach ($inputList as $value) { try { $result = parent::validate($validator, array('mail_address' => $value)); if (!empty($result['pc_address'])) { $values['pc'][] = $result['pc_address']; } elseif (!empty($result['mobile_address'])) { $values['mobile'][] = $result['mobile_address']; } } catch (sfValidatorError $e) { $values['invalid'][] = $value; } } if (empty($values['pc']) && empty($values['mobile'])) { throw new sfValidatorError($validator, 'All of the inputted E-mail addresses are invalid.'); } return $values; }