gpt4 book ai didi

php - 如何控制 Symfony 的 RepeatedType 验证序列

转载 作者:行者123 更新时间:2023-12-05 06:50:56 25 4
gpt4 key购买 nike

我正在使用 Symfony 的 RepeatedType注册表格上的电子邮件地址。

$builder->add(
'email',
RepeatedType::class,
[
'invalid_message' => 'Confirm your email address',
]
);

我还为属性声明本身添加了约束:

/**
* @var string|null
*
* @Assert\NotBlank
* @Assert\Email(message="You must enter a valid email address")
*/
private ?string $email = null;

问题在于 Symfony 在运行特定于属性的验证之前运行了 RepeatedType 验证。

换句话说,如果您输入了错误的电子邮件地址,它会首先确保您输入了两次错误的电子邮件地址,然后再告诉您错误。

顺便说一下,这同样适用于我的密码 - 它断言您在告诉您不符合密码强度要求之前正确地重新输入了密码。

我知道我可以控制 sequence of validation groups但由于 RepeatedType 未应用于模型本身,我不确定如何实现这一点。

最佳答案

如果你想自定义这个行为,你可以检查电子邮件地址是否与非映射属性的约束相同:

use Symfony\Component\Validator\Constraints\EqualTo;

$builder->add('email', EmailType::class)
->add('email_repeat', EmailType::class, [
'mapped' => false,
'constraints' => [
new EqualTo([
'propertyPath' => 'email'
])
]
]);

关于php - 如何控制 Symfony 的 RepeatedType 验证序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66279031/

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