Я пытаюсь создать форму, но кажется, что существует конфликт, вызванный опцией аннотации OneToMany indexBy = "label"
Имя "Exemple frais" содержит недопустимые символы. Имена должны начинаться с буквы, цифры или символа подчеркивания и содержать только буквы, цифры, цифры, символы подчеркивания ("_"), дефисы ("-") и двоеточия (":").
Где«Exemple frais» - это метка моей сущности.
/**
* User.
*
* @ORM\Table(name="user")
* @ORM\Entity()
*/
class User extends BaseUser
{
(...)
/**
* @var Frais[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Frais", mappedBy="user",indexBy="label")
*/
private $frais;
Здесь мое поле формы:
->add(
'frais',
CollectionType::class,
[
'entry_type' => FraisType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true
]
)
Даже если я установлю следующие функции в FraisType:
public function getBlockPrefix()
{
return 'frais';
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'frais';
}
/**
* {@inheritDoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'data_class' => Frais::class
]
);
}
Единственное решение, которое я нашел, - это изменить мой CollectionType на EntityType. Знаете ли вы какое-нибудь решение, чтобы я не сменил это?