我正尝试按照文档中的说明向JSONB
字段添加自定义类型:
form:
fields:
- { property: 'attr', type: 'App\Form\Type\AttrType'}
和类实现:
class AttrType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title',TextType::class, array('label' => 'title'));
}
}
工作正常。
但是我有JSONB
列,我不知道存储了多少个字段及其类型。
问题:如何在buildForm
中获得实体attr
。我可以在$builder
中看到$options
和var_dump()
中存在所需的数据。
简化的预期结果:
public function buildForm(FormBuilderInterface $builder, array $options)
{
foreach($builder->getData()->getAttr() as $key=>$value){
$builder->add($key,TextType::class, array('data' => $value));
}
}