/** * Приём анкеты Сити банка */ public function executeCitiCashBackApplication(sfRequest $request) { $form = new CitiBankApplicationForm(); $form->bind($request->getPostParameters()); if ($form->isValid()) { $this->_sendEmail($form->getValues()); return $this->renderJsonSuccess('Анкета успешно отправлена'); } $errors = $form->getErrorSchema()->getErrors(); $errorMessages = array(); //TODO: refactor: все сообщения русским языком должны создаваться на клиенте, //сервер должен слать только код поля (например, "email") и сообщение валидатора $humanFieldNames = array("email" => "Email", "birthday" => "Дата рождения", "name" => "Имя", "patronymic" => "Отчество", "surname" => "Фамилия", "mobile_phone" => "Мобильный телефон"); foreach ($errors as $fieldName => $error) { $errorMessages[] = sprintf("%s", $humanFieldNames[$fieldName]); } return $this->renderJsonError("Пожалуйста, исправьте заполнение полей: \n" . implode(', ', $errorMessages)); }