我正在尝试按照文档描述向 JSONB
字段添加自定义类型:
表单:
字段:
- { 属性:'attr',类型:'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));
}
}