Я создаю приложение, которое создает пользователей из файла CSV, поэтому форм нет. Я использую компонент валидатора Symfony для проверки данных внутри контроллера. до сих пор я создал вспомогательную функцию, которая принимает данные и ограничения и возвращает ошибку, если таковая имеется. вот что я имею в виду.
Вспомогательная функция
public function csverror($value, $constraint, $rowcount, $columnname){
$error = $this->container->get('validator')->validate($value, $constraint);
if(count($error) !== 0){
$this->get('session')->getFlashBag()->add('csverror', "error on line: $rowcount column: $columnname ". $error[0]->getMessage());
}
}
и вызывая его внутри действия контроллера
$this->csverror($associativerow['email'], array(new NotBlank(), new Length(['max' => 100]), new Email()), $rowcount, "email");
Здесь мне нужно проверить, существует ли адрес электронной почты, указанный в CSV, в базе данных, для этого я предполагаю, что UniqueEntity. С ним связан класс под названием UniqueEntityValidator. Удивительно то, что компонент Validator имеет функцию, которая автоматически проверяет языковой стандарт и отображает сообщения об ошибках на этом языке!! (я предполагаю, что это связано с объектом ConstraintViolation эм>). Я хотел бы использовать эту функцию вместо мягкого findOneBy()
для запроса базы данных и проверки, существует ли электронное письмо и возвращается с сообщением об ошибке, используя (сравнительно) грязные файлы xliff.
так! вопрос заключается в том, как проверить уникальность электронной почты в базе данных с помощью служба проверки
редактировать: в приведенном выше коде $associativerow['email']
- это строка, но на практике я могу использовать ее как объект User
, если это необходимо, вы можете иметь право предположить, что это объект сущности, если это необходимо!