Php Symfony 4-集合字段的Uniquentity约束验证
Symfony有一个问题已经存在很长时间了,这使得我们无法对集合使用验证约束 例如,对于collectionType,如果我们同时添加两个标题相同的产品,那么将出现重复错误 这个话题也谈到了它: 今年似乎有了新的东西,但我不确定它是否真的符合我的要求: 显然,我的目标是,当我验证包含多个具有相同标题、相同电子邮件地址或其他内容的对象的集合时,会有一个约束来检查并警告我们,以便我们可以进行更改 因此,我尝试设置文档中显示的内容,但我没有成功,我不知道如何使其适应我的情况 我想在我的CollectionType上添加一个验证约束,以便它验证在子集合中输入的每个电子邮件都是唯一的。我想直接从我的表单类型开始 如下图所示,当我尝试提交一个包含两个具有相同电子邮件地址的对象的表单时: 在不尝试新的约束唯一性的情况下,我得到了以下结果: SQLSTATE[23000]:完整性约束冲突:1062 du 冠军杯test@mail.fr“倒酒”UNIQ_8D93D649E7927C74 我尝试过类似的方法,但不起作用:Php Symfony 4-集合字段的Uniquentity约束验证,php,symfony,collections,constraints,unique,Php,Symfony,Collections,Constraints,Unique,Symfony有一个问题已经存在很长时间了,这使得我们无法对集合使用验证约束 例如,对于collectionType,如果我们同时添加两个标题相同的产品,那么将出现重复错误 这个话题也谈到了它: 今年似乎有了新的东西,但我不确定它是否真的符合我的要求: 显然,我的目标是,当我验证包含多个具有相同标题、相同电子邮件地址或其他内容的对象的集合时,会有一个约束来检查并警告我们,以便我们可以进行更改 因此,我尝试设置文档中显示的内容,但我没有成功,我不知道如何使其适应我的情况 我想在我的Collecti
public function buildForm(FormBuilderInterface $builder, array $options)
{
$entreprise = $options['entreprise'];
$builder
->add('utilisateurs', CollectionType::class, [
'entry_type' => RegistrationType::class,
'entry_options' => [
'label' => false,
'entreprise' => $entreprise,
],
'allow_add' => true,
'allow_delete' => true,
'delete_empty' => true,
'by_reference' => true,
'prototype' => true,
'label' => false,
'attr' => [
'class' => 'my-selector',
'label' => false,
],
'by_reference' => false,
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => RegistrationCollection::class,
'entreprise' => Entreprise::class,
'constraints' => [
new Collection([
new UniqueEntity([
"fields" => "email",
"message" => "Adresse email répétée"
])
])
]
]);
}
还有我的第二种类型:
RegistrationType.php:
$builder
->add('nom', TextType::class, [
'attr' => [
'placeholder' => "Nom"
]
])
->add('prenom', TextType::class, [
'attr' => [
'placeholder' => "Prénom"
]
])
->add('profession', TextType::class, [
"required" => false,
'attr' => [
'placeholder' => "Profession"
]
])
->add('email', EmailType::class, [
'attr' => [
'placeholder' => "Adresse email"
]
])
;
回拨对我有什么帮助?理想情况下,我会从formTypeI中寻找一种设置约束的方法。我在这里发布了带有链接的答案,因为stackoverflow要求答案中包含完整的代码示例。如果这是解决方案,我也可以在这里发布完整的答案。