使用Sonata Admin处理Doctrine json_array字段

时间:2014-02-16 21:58:04

标签: symfony doctrine-orm sonata-admin

使用Sonata Admin管理Doctrine json_array字段是否有“内置”方式?

我在Symfony / Sonata文档(或代码)中找不到任何有用的文档(或相关代码),但我希望我错过了一些东西!

理想情况下,我希望看到序列化的键/值对以及删除其中任何一个的方法并添加一些新的,但我想我将不得不自己写出来...

2 个答案:

答案 0 :(得分:4)

您使用json_array就像使用任何数组一样,因此您可以使用collection typesonata type collection。 我喜欢那个sonata类型负责为你添加/删除JavaScript。

答案 1 :(得分:0)

在我的实体中,我在“配置”列上使用“ json ”类型

/**
 * @var integer
 *
 * @ORM\Column(name="config", type="json", nullable=false)
 */
protected $config;

您可以使用基本的DataTransformer将值从JSON转换为字符串,并将其显示为文本形式

$formMapper->add('config', 'text', [
    'required' => false,
])        
$formMapper->get('config')->addModelTransformer(new CallbackTransformer(
    function ($tagsAsArray) {
        //object stdclass json, need to be transform as string for render form
        return json_encode($tagsAsArray);
    },
    function ($tagsAsString) { 
        //string, need to be transform as stdClass for json type for persist in DB
        return json_decode($tagsAsString);
    }
));