public function onBind(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); $cleanedPhoneNumber = str_replace(array(' ', '-', '(', ')'), '', $data->getPhoneNumber()); $data->setPhoneNumber($cleanedPhoneNumber); $bankInformationValidator = new BankInformationFormValidator($form, $data); $bankInformationValidator->validate(); }
protected function validateFields(FormInterface $form, $data) { if (!in_array($data->getType(), OneTimeContribution::getTypeChoices())) { $form->get('type')->addError(new FormError('Choose an option.')); } else { if ($data->getType() == OneTimeContribution::TYPE_FUNDING_BANK) { $bankInformationValidator = new BankInformationFormValidator($form->get('bankInformation'), $data->getBankInformation()); $bankInformationValidator->validate(); if (!$data->getStartTransferDate() instanceof \DateTime) { $form->get('start_transfer_date_month')->addError(new FormError('Enter correct date.')); } else { $minDate = new \DateTime('+5 days'); if ($data->getStartTransferDate() < $minDate) { $form->get('start_transfer_date_month')->addError(new FormError("The start of your transfer should be at least 5 days after today’s date.")); } } if (!$data->getAmount()) { $form->get('amount')->addError(new FormError('Required.')); } if ($form->has('transaction_frequency')) { $frequency = $form->get('transaction_frequency')->getData(); if (null === $frequency || !is_numeric($frequency)) { $form->get('transaction_frequency')->addError(new FormError('Choose an option.')); } } if ($form->has('contribution_year')) { $contributionYear = $data->getContributionYear(); if (null === $contributionYear || !is_numeric($contributionYear)) { $form->get('contribution_year')->addError(new FormError('Enter valid year.')); } else { $currDate = new \DateTime(); $currYear = $currDate->format('Y'); $minDate = new \DateTime($currYear . '-01-01'); $maxDate = new \DateTime($currYear . '-04-15'); $startTransferDate = $data->getStartTransferDate(); if ($startTransferDate < $minDate || $startTransferDate > $maxDate) { if ($contributionYear !== $currYear) { $form->get('contribution_year')->addError(new FormError(sprintf('Value should be equal %s', $currYear))); } } else { $prevYear = $currDate->add(\DateInterval::createFromDateString('-1 year'))->format('Y'); if ($contributionYear !== $currYear && $contributionYear !== $prevYear) { $form->get('contribution_year')->addError(new FormError(sprintf('Value should be equal %s or %s', $prevYear, $currYear))); } } } } } } }
/** * BIND event handler * Validate form fields * * @param FormEvent $event */ public function bind(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); if ($form->has('transfer_date_month') && $form->has('transfer_date_day')) { $month = $form->get('transfer_date_month')->getData(); $day = $form->get('transfer_date_day')->getData(); $year = date('Y'); if ($month && $day) { $date = new \DateTime($year . '-' . $month . '-' . $day); $data->setTransferDate($date); } } $validator = new ScheduledDistributionFormValidator($form, $data); $validator->validate(); if ($form->has('bankInformation')) { if (!$data->getBankInformation()) { $form->get('bankInformation')->addError(new FormError('Required.')); } else { $bankInformationValidator = new BankInformationFormValidator($form->get('bankInformation'), $data->getBankInformation()); $bankInformationValidator->validate(); } } }