Мне нужно создать форму для создания коллекции одного и того же объекта, но я не хочу повторять все поля для каждой записи коллекции (только поля, которые будут иметь разные значения).
Представьте себе Product
сущность:
class Product
{
private $category;
private $name;
private $price;
}
Я хотел бы, чтобы форма создавала несколько объектов Product
одного и того же category
одновременно. Таким образом, форма должна иметь одно поле category
и набор name
и price
.
Моя форма будет выглядеть примерно так:
class ProductCollectionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('category')
->add('products', CollectionType::class, array(
'entry_type' => ProductType::class,
'allow_add' => true,
'mapped' => false,
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Product::class,
));
}
}
class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('price')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Product::class,
));
}
}
Кто-нибудь знает, есть ли способ автоматически заполнить все объекты в типе коллекции родительскими полями? (только category
в этом примере)
Спасибо!