gpt4 book ai didi

交响乐团 3 : Call default validator inside a Custom Validator and check it the field is validated

转载 作者:行者123 更新时间:2023-12-02 15:40:19 24 4
gpt4 key购买 nike

我有一个自定义验证器,我可以在其中获取实体中定义的字段之一的值,然后我想使用内置验证器(例如 NotBlank())验证该字段,以便在验证后我如果字段经过验证,则获取“true”;如果未验证,则获取“false”。

我的自定义验证器如下所示:

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\ConstraintValidator;


class UpdatePasswordValidator extends ConstraintValidator
{

public function __construct()
{

}

public function validate($email, Constraint $constraint)
{
/**
* Getting field value from entity
*/
$busNumber = $this->context->getRoot()->getData()->getBusnumber();

/**
* Validate $busNumber
*/
$busNumberToValidate = $this->context->getValidator()
->inContext($this->context)
->atPath("busnumber")
->validate($busNumber, new NotBlank())->getViolations();
}
}

在本例中,我想使用 NotBlank() 验证 $busNumber。调用 getViolations() 会为我提供一个包含所有违规的对象,而我只需要一个与 $busNumber 验证关联的对象。

更新:我实际上想要实现的是:

if ($busNumberToValidate)
{
echo "busNumber field is validated";
}
else
{
echo "busNumber field is NOT validated";
}

$busNumberToValidate 应包含或不包含“busNumber”字段的错误,具体取决于验证结果。

最佳答案

解决方案如下:

$busNumberToValidate = $this->context->getValidator()->validate($busNumber, new NotBlank());

if ($busNumberToValidate->has(0))
{
echo "field is not validated";
}
else
{
echo "field is validated";
}

// if you want to get the error message for the validated field
echo $busNumberToValidate->get(0)->getMessage();

关于交响乐团 3 : Call default validator inside a Custom Validator and check it the field is validated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36308750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com