Using Sonata Admin to work with Doctrine json_array fields

落花浮王杯 提交于 2019-12-02 04:39:11

You work with json_array just like with any array so You can go with collection type or sonata type collection. I like that sonata type takes care about add/delete JavaScript for You.

In my entity I work with "json" type on column "config"

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

You can use basic DataTransformer to transform your value from JSON to string and display it as text in form

$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);
    }
));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!