Я использую аннотации сущности @Assert с различными тегами групп.
/**
* @var string
* @Assert\NotBlank(groups={"basic"})
* @ORM\Column(name="name", type="string", length=255, nullable=true)
*/
private $name = null;
/**
* @var string
* @Assert\NotBlank(groups={"advanced"})
* @ORM\Column(name="full_name", type="string", length=255, nullable=true)
*/
private $fullName = null;
Поэтому для него определены basi c и advanced группы. При создании формы я использовал базовые c группы проверки, надеясь, что расширенные ограничения не будут затронуты.
$formBasics = $this->createForm(ArtistBasicType::class, $dummyArtist, [
'validation_groups' => ['basic'],
...
public function configureOptions(OptionsResolver $resolver) {
$resolver->setDefaults([
'data_class' => Artist::class,
// 'validation_groups' => ['basic'],
]);
}
Я не настроил ArtistBasicType
по умолчанию validation_group
(закомментировано, но также и раньше устало), и поля buildForm используют typeguesser:
->add('fullName', null, ['label' => 'Full name'])
->add('name', null, ['label' => 'Name'])
Так что я также не принудительно установил там флаг required (*)
. Twig также содержит следующий стандартный код:
{{ form_row(formBasics.name,{'attr': {'class': 'form-control'}}) }}
{{ form_row(formBasics.fullName,{'attr': {'class': 'form-control'}}) }}
И все же, оба поля обязательны для заполнения .
Как мне получить полное имя поле необязательно в этом случае, но готово к обязательности, если я использую advanced группу для проверки?