我正在尝试按照文档中的说明向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));
}
}