Validation EntityManagerInterface不工作的Symfony 4.1自定义验证程序

Validation EntityManagerInterface不工作的Symfony 4.1自定义验证程序,validation,symfony4,Validation,Symfony4,我想验证$form->isValid()之外的某个变量,但收到以下错误消息: 参数太少,无法正常工作 App\Validator\Constraints\ContainsTestValidator::\uu construct(),0 传入****\vendor\symfony\validator\ConstraintValidatorFactory.php 在第43行,正好是1 控制器: 容器测试: ContainesTestValidator: 有人知道如何初始化EntityManag

我想验证$form->isValid()之外的某个变量,但收到以下错误消息:

参数太少,无法正常工作 App\Validator\Constraints\ContainsTestValidator::\uu construct(),0 传入****\vendor\symfony\validator\ConstraintValidatorFactory.php 在第43行,正好是1

控制器:

容器测试:

ContainesTestValidator:


有人知道如何初始化EntityManagerInterface吗?

解决了这个问题。我也有同样的问题。 这里有一个提示 但是,对于构造函数中的
TestController
inject
Symfony\Component\Validator\Validator\Validator接口
,您真正需要什么呢。 然后使用此接口,而不是
Validation::createValidator()
以下是它应该是什么:

class TestController extends AbstractController
{
    private $validator;
    public function __construct( ValidatorInterface $validator)
    {
        $this->validator = $validator;
    }

    public function validate(Request $request)
    {
        $string= $request->request->get('data');

        $validator = $this->validator;
        $constraint = new Assert\ContainsTest();
        $violations = $validator->validate($string, $constraint);
    }
}
class ContainsTest extends Constraint
{
    public $message = '"{{ string }}" is not valid.';
}
class ContainsTestValidator extends ConstraintValidator
{
    private $entityManager;
    /**
     * @param EntityManager $entityManager
     */
    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager = $entityManager;
    }

    public function validate($value, Constraint $constraint)
    {
        /* some code */
    }
}
class TestController extends AbstractController
{
    private $validator;
    public function __construct( ValidatorInterface $validator)
    {
        $this->validator = $validator;
    }

    public function validate(Request $request)
    {
        $string= $request->request->get('data');

        $validator = $this->validator;
        $constraint = new Assert\ContainsTest();
        $violations = $validator->validate($string, $constraint);
    }
}