Никогда не было этой проблемы раньше.
- Заполните форму с телефоном, оставив фамилию пустой
- Отправьте форму (и группы проверки станут
Default
иCreate
) - Ошибка «Требуется фамилия». сопоставляется с неправильным полем
$phone
, в то время как должно быть сопоставлено с самим свойством$lastName
Можете ли вы воспроизвести ту же проблему?
Свойство $phone
находится в группе проверки Create
, а $phone в неявной группе Default
:
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;
}
Я определяю группы проверки на основе представленных данных:
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'];
}
]);
}
}