Validation EntityManagerInterface不工作的Symfony 4.1自定义验证程序
我想验证$form->isValid()之外的某个变量,但收到以下错误消息: 参数太少,无法正常工作 App\Validator\Constraints\ContainsTestValidator::\uu construct(),0 传入****\vendor\symfony\validator\ConstraintValidatorFactory.php 在第43行,正好是1 控制器: 容器测试: ContainesTestValidator: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
有人知道如何初始化EntityManagerInterface吗?解决了这个问题。我也有同样的问题。 这里有一个提示 但是,对于构造函数中的
TestController
injectSymfony\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);
}
}