Эта ссылка Symfony2 - Как использовать переменные Entity в CallbackValidator? напрямую решить ваш вопрос.По сути, директива use может передавать переменные:
->addValidator(new CallbackValidator(function($form) use($user)
Однако при передаче нескольких аргументов мне проще просто создать класс валидатора, который реализует FormValidatorInterface, и использовать его:
class UserNameValidator implements FormValidatorInterface
{
public function __construct($em)
{
$this->em = $em;
}
public function validate(FormInterface $form)
{
Я даже сделаю это сервисом, поэтому мне не нужно беспокоиться о его создании.