我正在尝试创建一个自定义字段类型,它将2个(或更多)文本输入类型转换为序列化数组到我的实体“meta_data”字段中。到目前为止我有:
实体:
// @ORM\Column(type="object")
private $meta_data;
->setMetaData($data) { $this->meta_data = serialize($data); }
->getMetaData($data) { $this->meta_data = unserialize($data); }
我已经创建了自定义字段类型并添加到buildForm方法中:
// class SerializedFieldType buildForm method
$builder
->add('tagline')
->add('description')
字段类型扩展了文本类型。在我的表单构建器界面中,我可以成功使用该自定义字段类型,该字段现在显示两个字段来代替元数据表单字段:
// main form type buildForm method
->add('meta_data', new FieldType\SerializedFieldType()
现在,我正在试图弄清楚如何使用数据转换器将未序列化的实体数据设置到每个字段中,并在发布表单时将其再次转换回序列化数据。
我已阅读Sf自定义字段类型docs和DataTransformers部分。
任何帮助将不胜感激!