gre*_*emo 2 symfony-forms symfony symfony-2.4
从来没有遇到过这个问题.
Default和Create)$phone字段上,而应该是mappend到$lastName自己的属性
你能重现同样的问题吗?
$phone属性在Create验证组中,而Default隐藏组中的$ phone :
class User
{
/**
* @Assert\NotBlank(groups={"Create"}, message="Last name is required.")
*
* @var string
*/
protected $lastName;
/**
* @Assert\NotBlank(message="Phone is required.")
*
* @var string
*/
protected $phone;
}
Run Code Online (Sandbox Code Playgroud)
我根据提交的数据确定验证组:
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('lastName', 'text');
$builder->add('phone', 'text');
$builder->add('submit', 'submit');
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
'required' => false,
'data_class' => 'Acme\HelloBundle\Entity\User',
'validation_groups' => function (FormInterface $form) {
return null === $form->getData()->getId()
? ['Default', 'Create']
: ['Default', 'Edit'];
}
]);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以编辑config.yml以将API设置为2.4,而不是使用编译器传递:
validation:
enable_annotations: true
api: 2.4 # default is auto which sets API 2.5 BC
Run Code Online (Sandbox Code Playgroud)
当在2.5中解决错误时,只需删除api设置,您将返回到2.5向后兼容.