需要找到一种方法,如何在 Symfony 中的自定义验证器中根据另一个值验证字段。在底部,我提供了如何在遗留应用程序中进行验证,但是我们如何从 Symfony 中的另一个字段获取值?
我有自定义验证器,这不是问题,但问题是 - 如何获取其他字段的值。
private function validate_uds_message($size, $start, $stop) {
return $start <= $stop && $stop <= ($size * 1024) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)
验证器:
<?php
namespace App\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
use Symfony\Component\Validator\Exception\UnexpectedValueException;
class UdsMessageValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
if (!$constraint instanceof UdsMessage) {
throw new UnexpectedTypeException($constraint, UdsMessage::class);
}
if (null === $value || '' === $value) {
return;
}
if (!is_int($value)) {
throw new UnexpectedValueException($value, 'int'); …Run Code Online (Sandbox Code Playgroud)