Учитывая следующую архитектуру
entityA
{
entityB [12]
}
entityB
{
entityC[]
}
entityC
{
name, defaultValue
}
При создании нового объекта entityA я хочу перечислить каждый объект C в базе данных, чтобы иметь возможность выбирать их и настраивать defaultValue следующим образом:
CHECKBOX [x] LABEL name1, INPUT defaultValue1
CHECKBOX [ ] LABEL name2, INPUT defaultValue2
CHECKBOX [x] LABEL name3, INPUT defaultValue3
CHECKBOX [x] LABEL name4, INPUT defaultValue4
etc
... цель состоит в том, чтобы автоматически генерировать объекты сущности C в соответствии с выбором, указанным выше, в каждом из 12 объектов entityB этой новой сущностиA
->add('categories', CollectionType::class, [
"mapped" => false,
'entry_type' => SharedCategoryType::class
])
Использование категории (сущность *) 1021 *) как тип сущности не работает, потому что я тоже хочу выставить значение по умолчанию. Вот SharedCategoryType
class SharedCategoryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('enabled', CheckboxType::class, [
"mapped" => false
])
->add('name' , TextType::class) //not a label but not important for now
->add('defaultValue' , MoneyType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Category::class,
]);
}
}
С этим кодом отображение не работает, но я не знаю, чего не хватает ...
Редактировать: первые попытки, которые я сделал, были такими:
->add('budgets', EntityType::class, [
"class" => Category::class,
"mapped" => false,
"multiple" => true,
"expanded" => true
}
но тогда я не могу изменить поле defaultValue. Он автоматически создает метку на основе имени (используя метод __toString, который я определил, вероятно,), но я не могу найти, как добавить defaultValue к полям, отображаемым